自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(93)
  • 资源 (1)
  • 收藏
  • 关注

原创 JDK1.8 新特性

本文主要介绍了JDK1.8版本中的一些新特性,乃作者视频观后笔记,仅供参考。jdk1.8新特性知识点:Lambda表达式函数式接口*方法引用和构造器调用Stream API接口中的默认方法和静态方法新时间日期API在jdk1.8中对hashMap等map集合的数据结构优化。hashMap数据结构的优化原来的hashMap采用的数据结构是哈希表(数组+链表...

2020-11-04 07:59:32 97

原创 RabbitMQ - Spring boot 整合

新建项目pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ht...

2020-10-26 23:56:55 79

原创 Spring Cloud入门操作手册大全

环境STSMavenLombokspring cloud 介绍spring cloud 是一系列框架的集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子...

2020-10-26 20:42:49 227

原创 Kubernetes

安装kubernetes集群kubernetes的安装过程极其复杂,对Linux运维不熟悉的情况下安装kubernetes极为困难,再加上国内无法访问google服务器,我们安装k8s就更加困难kubeasz项目(https://github.com/easzlab/kubeasz)极大的简化了k8s集群的安装过程,使我们可以离线一键安装k8s集群准备第一台虚拟机设置虚...

2020-10-26 19:54:46 196

原创 RabbitMQ

RabbitMQ 使用场景服务解耦假设有这样一个场景, 服务A产生数据, 而服务B,C,D需要这些数据, 那么我们可以在A服务中直接调用B,C,D服务,把数据传递到下游服务即可但是,随着我们的应用规模不断扩大,会有更多的服务需要A的数据,如果有几十甚至几百个下游服务,而且会不断变更,再加上还要考虑下游服务出错的情况,那么A服务中调用代码的维护会极为困难这是由于服务之间...

2020-10-26 19:05:34 89

原创 RocketMQ 发送事务消息原理分析和代码实现

事务消息RocketMQ 提供了可靠性消息,也叫事务消息。下面分析一下其原理。事务消息的原理下面来看 RocketMQ 的事务消息是如何来发送“可靠消息”的,只需要以下三步:发送半消息(半消息不会发送给消费者)执行本地事务提交消息完成事务消息发送后,消费者就可以以正常的方式来消费数据。RocketMQ 的自动重发机制在绝大多数情况下,都可以保证消息...

2020-10-26 18:48:32 331

原创 RocketMQ (二) 双主双从同步复制集群方案

部署环境作为测试环境,我们使用两台虚拟机来部署双主双从环境,具体结构如下:整个集群由两个 name server 实例和四个 broker 实例组成name server:两台服务器分别启动两个name serverbroker A 主从:服务器1部署 broker A 主服务服务器2部署 broker A 从服务broker B 主从:服务器2部...

2020-10-26 16:42:02 669

原创 RocketMQ (四) 使用RocketMQ原生API收发消息代码样例

pom文件新建 maven 项目或 module,添加 rocketmq-client 依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001...

2020-10-26 15:19:16 620

原创 分布式事务(五)Seata AT模式-Spring Cloud微服务添加 AT 分布式事务

项目源码: https://gitee.com/benwang6/seata-samples下载订单项目案例(无事务版)在上一节中我们完成了订单项目案例,但没有添加事务处理。下面在这个项目中我们添加 Seata AT 事务。无事务版案例代码可以在这里下载:https://gitee.com/benwang6/seata-samples/tree/%E6%97%A0%E...

2020-10-26 15:06:22 238

原创 RocketMQ (一) 安装

文件下载jdk-8-u212rocketmq4.7-rocketconsole1.0.1安装安装配置 jdk81. 上传jdk压缩文件将文件jdk-8u212-linux-x64.tar.gz上传到 /root 目录2. 解压缩执行解压命令# 将jdk解压到 /usr/local/ 目录tar -xf jdk-8u212-linux-x64.tar.gz...

2020-10-26 13:58:10 128

原创 RocketMQ (五) Springboot 整合 RocketMQ 收发消息样例

pom文件创建 springboot 项目,添加rocketmq-spring-boot-starter依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/...

2020-10-26 11:24:32 562 2

原创 k8s部署Spring Cloud应用

下载并导入第18章代码https://github.com/benwang6/spring-cloud-repo只导入前5个项目修改2,3,4,5项目的yml配置,添加相面配置,使用ip注册eureka: instance: prefer-ip-address: true按项目顺序执行:右键 – run as – maven build…Goals:...

2020-10-26 10:34:06 115

原创 分布式事务(六)Seata TCC模式-TCC模式介绍

项目源码: https://gitee.com/benwang6/seata-samplesTCC 基本原理TCC 与 Seata AT 事务一样都是两阶段事务,它与 AT 事务的主要区别为:TCC 对业务代码侵入严重每个阶段的数据操作都要自己进行编码来实现,事务框架无法自动处理。TCC 效率更高不必对数据加全局锁,允许多个事务同时操作数据。第一阶段 T...

2020-10-26 09:41:36 2448

原创 Docker

docker官网是这样介绍docker的:Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications…其实看完这句话还是不明白docker究竟是什么我们可以把他想象成是一个用了一种新颖方式实现的超轻量虚拟机。当然在实现的原...

2020-10-26 08:45:01 73

原创 分布式事务(七)Seata TCC模式-Spring Cloud微服务添加 TCC 分布式事务

项目源码: https://gitee.com/benwang6/seata-samples准备订单项目案例新建 seata-tcc 工程新建 Empty Project:工程命名为 seata-tcc,存放到 seata-samples 文件夹下,与 seata-at 工程存放在一起:导入订单项目,无事务版本下载项目代码访问 git 仓库 https:/...

2020-10-26 08:22:15 595 1

原创 分布式事务(三)Seata分布式事务框架-AT模式介绍

Seata介绍Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式...

2020-10-26 07:38:16 338

原创 Docker案例

关闭防火墙# 关闭防火墙systemctl stop firewalld.service# 禁止防火墙开机启动systemctl disable firewalld.service启动或重启docker# 启动dockersystemctl start docker# 重启dockersystemctl restart dockerredis加载镜像do...

2020-10-26 07:18:01 53

原创 Lucene Solr 811

solrSolr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。luceneLucene是apache jakarta项目的一个子项目,是一个开放源代码的全文检索引擎开发工具包,但它不是一个完整的全文...

2020-10-26 02:44:27 81

原创 mysql的执行顺序是怎样的?又是如何执行sql语句的?

前言:mysql在我们的开发中基本每天都要面对的,作为开发中的数据的来源,mysql承担者存储数据和读写数据的职责。因为学习和了解mysql是至关重要的,那么当我们在客户端发起一个sql到出现详细的查询数据,这其中究竟经历了什么样的过程?mysql服务端是如何处理请求的,又是如何执行sql语句的?本篇博客将来探讨这个问题:本篇博客的目录一:mysql执行过程二:mysql执行过程中的状态三:mysql执行的顺序四:总结一:mysql执行过程mysql整体的执行过程如下图所示:1.1:连接器

2021-04-01 09:20:19 182

原创 记录mysql数据库切换成oracle数据库中遇到的问题

oracle与mysql中GROUP BY 的区别1.oracle中分组字段必须要出现在select后面;然后根据某字段合计数值;或者得出分组字段的重复条数;2.mysql中分组字段非必须要出现在select后面;查询出其他字段的值只是随机选择一条数据,没有代表意义;Q.E.D....

2021-01-29 16:36:09 216

原创 MySQL 事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执...

2020-11-04 19:34:50 160

原创 优美的讲解equals和==的区别

==当比较对象的时候:比较的是栈内存中存放在堆内存中的地址,比较两个对象的地址是否相同(也就是比较两个变量是否指向 同一个对象。当比较基本数据类型时候(byte,short,int,long,char,double,folat,boolean):则直接比较值。举例:inti=1; int j=1; i==j...

2020-11-04 15:38:48 92

原创 Java之数组转集合&集合转数组

一、数组转换为集合需要注意的是,转换只能转换为List集合。那么为什么不能转换为Set集合呢?原因是:Set不能存放重复元素,所以若转换为Set集合可能出现丢失元素的情况。。。数组转换为集合使用的是数组的工具类Arrays的静态方法asList。查看API文档可知该方法返回由指定数组支持的固定大小的列表。eg:import java.util.Arrays;impo...

2020-11-03 23:20:23 384

原创 SpringBoot程序启动加载过程

SpringBoot程序启动加载过程元注解说明:@Target(ElementType.TYPE) 对哪个元素有效 对类有效@Retention(RetentionPolicy.RUNTIME) 什么时候起作用 运行期有效@Documented 是否支持生成文档@Inherited 该注解是否可以被继承.SpringBootConfiguration说明作用:标...

2020-11-03 17:56:47 800

原创 java集合超详解

一、集合大纲1.集合和数组的区别:2.Collection集合的方法:3.常用集合的分类:Collection 接口的接口 对象的集合(单列集合)├——-List 接口:元素按进入先后有序保存,可重复│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全│—————-├ ArrayList 接口实现类, 数组, 随机...

2020-11-03 12:09:32 59

原创 三种JAVA常用实现字符串反转(Reverse)的方法

1.最简单的方法:public static String reverse1(String str){return new StringBuffer(str).reverse().toString();}SringBuffer类和String一样,也用来代表字符串,相比String,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于Str...

2020-11-03 06:25:03 10069 1

原创 StringBuffer 和 StringBuilder 的 3 个区别

StringBuffer 和 StringBuilder 它们都是可变的字符串,不过它们之间的区别是 Java 初中级面试出现几率十分高的一道题。这么简单的一道题,栈长在最近的面试过程中,却经常遇到很多求职者说反,搞不清使用场景的情况。今天,栈长我带大家彻底搞懂 StringBuffer 和 StringBuilder 的几个区别和它们的应用场景,如果你是大牛,请略过,如果你...

2020-11-03 04:05:39 134

原创 java编程基础(五)二分法查找

二分法查找逻辑分析二分法查找是在一组有序数据中寻找目标值,并获得目标值所在的下标位置。二分法查找也叫折半查找,基本逻辑是每次都向中间位置找,然后缩小一半范围再向中间位置找,请看下面的示例:查找结束时,低位下标和高位下标可以重叠,请看下面的演示:·如果低位下标和高位下标交叉,则说明查找的目标值不存在。最终 lo 下标值则是目标值应插入的位置:代码package ...

2020-10-26 22:07:31 117

原创 java编程基础(三)冒泡排序

冒泡排序运算逻辑分析从上面的演示看到,排序运算主要依靠j向前递减来完成,j递减过程做两件事:较小值向前移动最小值移动到i位置代码package demo3;import java.util.Arrays;import java.util.Random;public class Test1 { public static void main(St...

2020-10-26 20:23:36 56

原创 java编程基础(一)二进制

二进制对于任何已知类型的传统计算机而言,均以1和0作为编码形式进行程序计算。在电路结构中,高电平与低电平对应表示1和0。计算机内部表示任何数据都是用二进制。而与人进行交互时,可以将数据转换成人可以理解的内容:10进制、文字、图片、音频视频。不同进制的计算方式是相通的:从0开始一直加1:十进制乘10和二进制乘2运算比较:常用的二进制值:每加一个0都是乘2,所以用2的...

2020-10-26 16:05:43 322 1

原创 分布式事务(一)Mysql本地事务和事务隔离级别

数据库事务数据库事务由一组sql语句组成。所有sql语句执行成功则事务整体成功;任一条sql语句失败则事务整体失败,数据恢复到事务之前的状态。下面以转账为例进一步说明。A 账户向 B 账户转账,需要更新两个账户的记录:- A 账户减金额update user set money=money-100 where id='A'- B 账户加金额update use...

2020-10-26 16:03:45 112

原创 分布式事务(四)Seata AT模式-Spring Cloud微服务案例

项目源码: https://gitee.com/benwang6/seata-samples订单业务案例创建 Empty Project:seata-at先新建文件夹 seata-samples,后面测试的 Seata AT 和 Seata TCC 模式都放在该目录下。接着创建 seata-at 项目:选择 Empty Project:填写项目名 seata-...

2020-10-26 13:43:21 214

原创 java编程基础(四)选择排序

选择排序运算逻辑分析选择排序的运算逻辑是,挑选比i位置小的值交换到i位置代码package demo1;import java.util.Arrays;import java.util.Random;public class SelectionSort { public static void main(String[] args) { ...

2020-10-26 11:01:35 53

原创 浅谈数据库优化方面的经验

浅谈数据库优化方面的经验任何系统、网站几乎都离不开数据库,数据库好比人大脑的记忆系统,没有了数据库就没有了记忆系统。而数据库优化则相当于在同等智力的情况下,利用一种高效率地记忆方法进行更快更优的记忆。那么数据库优化具体有哪些呢?这里我罗列出7种经常用到的方法。1.多用 LIMIT很多情况下,我们知道查询表只会有一条结果。在这种情况下,我们不妨加上LIMIT 1,这样可以...

2020-10-26 10:08:33 113

原创 java编程基础(六)递归

递归递归是指在方法中调用自身void f() { f(); }递归算法的运算逻辑,是将复杂问题一步步简化,简化成最简问题,然后再倒推求出结果,请看下面的例子:递归求阶乘逻辑分析求5的阶乘可以简化成求4的阶乘再乘5,依次类推,简化阶乘的最简问题:求0的阶乘,0的阶乘规定是1。再从0的阶乘倒推求出结果。代码package demo1;import jav...

2020-10-26 05:50:13 43

原创 RocketMQ (三) 基本原理

Topic 基本原理在Rocketmq集群中新建 Topic1在管理界面中新建主题Topic1,为了方便观察测试效果,这里把写队列和读队列的数量都设置成3。这样,在 broker-a 和 broker-b 上都创建了 Topic1 主题,并各创建了3写3读队列,共6写6读,如下图所示:你也可以修改Topic1分别配置 broker-a 和 borker-b 上的队列数...

2020-10-26 05:49:55 160

原创 java编程基础(二)位运算符

位运算符针对二进制运算,java提供了位运算符:位运算1. 位与 &两个整数值的32位,每一位和每一位求与。两位都是1与得的结果是1;只要有0结果就是0。00000000 00000000 00000000 0110100100000000 00000000 00000000 00100011 &-------------------------...

2020-10-26 05:46:41 79

原创 分布式事务(二)分布式事务方案

什么是分布式事务首先这是普通事务:下面是分布式事务:在微服务系统中,每个微服务应用都可能会有自己的数据库,它们首先需要控制自己的本地事务。一项业务操作可能会调用执行多个微服务。如何保证多个服务执行的多个数据库的操作整体成功或整体失败?这就是分布式事务要解决的问题。理论部分CAP 和 BASE 是对大规模互联网系统分布式实践的理论总结,如果没有实践为基础理论则难以理...

2020-10-26 05:41:27 61

原创 分布式事务(八)Spring Cloud微服务系统基于Rocketmq可靠消息最终一致性实现分布式事务...

项目源码: https://gitee.com/benwang6/rocketmq-dtx安装搭建 Rocketmq 服务器搭建单机 Rocketmq 服务器笔记:《RocketMQ (一) 安装》搭建双主双从同步复制 Rocketmq 服务器笔记:《RocketMQ (二) 双主双从同步复制集群方案》基于 Rocketmq 可靠消息的分布式事务方案原理Roc...

2020-10-26 02:47:12 139

原创 第1章 第1节 Java基础(一)

● 请你说说Java和PHP的区别?考察点:Java特性参考回答:PHP暂时还不支持像Java那样JIT运行时编译热点代码,但是PHP具有opcache机制,能够把脚本对应的opcode缓存在内存,PHP7中还支持配置opcache.file_cache导出opcode到文件.第三方的Facebook HHVM也支持JIT.另外PHP官方基于LLVM围绕opcache机制...

2020-10-25 14:05:21 61 1

java架构师零基础学习01-05天.rar

java架构师从零开始学习,Day01--Java开发环境+HelloWorld;Day02--数据类型+运算符;Day03--方法+流程控制+循环;Day04--循环+数组;Day05--数组+变量

2020-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除