自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 seata1.2分布式事务安装与使用

seata 下载http://seata.io/en-us/blog/download.html选择自己的版本下载seata和nacos整合开发分布式第一步 配置seata的服务器端的数据库1、全局事务会话信息由3块内容构成,全局事务–>分支事务–>全局锁,对应表global_table、branch_table、lock_table2、建立一个数据库名字随意(我起的名字——seata)用来做seata服务端的库,存储全局事务的会话信息3、拿到服务端数据库的脚本文件执行并且建立表第

2020-11-04 14:50:17 747

原创 Spring Cloud Gateway笔记

Gateway快速入门Spring Cloud Gateway是什么Spring Cloud Gateway优点Spring Cloud Gateway缺点核心概念Route(路由)Predicate(谓词)Filter(过滤器)使用Gateway路由谓词工厂详解路由配置的两种形式路由到指定URL路由到服务发现组件上的微服务谓词工厂详解AfterBeforeBetweenCookieHeaderHostMethodPathQueryRemoteAddr过滤器工厂详解Spring Cloud Gateway

2020-10-30 15:48:11 217

原创 Gateway网关-过滤器工厂详解

过滤器工厂详解TIPS本文基于 Spring Cloud Hoxton M2 ,理论支持 Spring Cloud Greenwich ,其中的新特性标注出来了。这一节来探讨Spring Cloud Gateway内置的Filter工厂。技巧断点打在 org.springframework.cloud.gateway.filter.NettyRoutingFilter#filter ,就可以调试Gateway转发的具体细节了。添加如下配置,可观察到一些请求细节:logging:

2020-10-30 15:18:45 1024 1

原创 使用Resilience4j保护实现容错-限流

使用Resilience4j保护实现容错-限流Resilience4j快速使用断路器 Circuit breaking限流仓壁模式重试注解配合使用与执行顺序Resilience4j配置管理配置可视化默认配置配置共享动态配置Feign与Resilience4jResilience4j快速使用在微服务中,经常会出现一些故障,而一些故障会直接或者间接的拖垮其它的服务,造成服务器雪崩,系统就会死掉。假如现在有很多的用户同时请求订单微服务去执行下单的操作,那么会调用我们的支付微服务,如果支付微服务现在挂掉了,而

2020-10-29 14:18:48 1394 2

原创 声明式HTTP客户端-Feign学习

Feign快速入门Feign能干什么?Feign指在是编写Java Http客户端变得更加容易。之前使用Ribbon+RestTemplate时,利用RESTTemplate请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,有偶遇对于服务依赖的调用可能不止一处,往往一个借口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务借口的定义。在Feign的实现下,我们只需创建一个接口并使用

2020-10-28 15:36:03 148

原创 SpringCloud Alibaba Nacos学习笔记

Nacos学习笔记nacos简介Nacos使用Nacos Server安装Nacos启动Nacos关闭单机模式支持mysql集群部署配置管理客户端使用方式动态刷新命名空间与分组命名空间分组服务注册发现nacos简介Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理:Spring CloudDubboSpring Boot…Nacos 的关键特性包括:服务发现和服务健康监测动态配置服务动态 DNS 服务服务及其元数据管理详细介绍请到nacos官网 https://n

2020-10-26 17:53:33 97 1

原创 集成SpringBoot Admin 项目中使用 context-path的问题

当Springboot项目中设置了 server.servlet.context-path时,Admin管理后台会提示服务离线原因:看了后台发现,这里请求的actuator路径不对,这样看来只需修改下请求路径就ok了我使用的是nacos注册中心,通过配置metadata ,修改健康管理的context-pathspring: cloud: discovery: server-addr: 127.0.0.1:8884 metadata:

2020-10-22 16:24:41 2115 4

原创 Mysql执行计划笔记

执行计划什么是执行计划执行计划的作用执行计划详解idselect_type列table列Type列System 与 consteq_refrefRangeIndexAllpossible_keys 与 Keykey_len字符类型整数/浮点数/时间类型的索引长度RefRowsExtraSQL 优化尽量全值匹配最佳左前缀法则不在索引列上做任何操作范围条件放最后覆盖索引尽量用不等于要甚用Null/Not 有影响自定义为NOTNULLLike 查询要当心字符类型加引号OR改UNION效率高什么是执行计划使用

2020-10-10 14:37:55 237

原创 Mysql慢查询笔记

慢查询什么是慢查询什么是慢查询慢查询日志,顾名思义,就是查询慢的日志,是指 mysql 记录所有执行超过 long_query_time 参数设定的时间阈值的 SQL 语句的日志。该日志能为 SQL 语句的优化带来很好的帮助。默 认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能...

2020-10-09 17:19:11 291

转载 Mysql的MVCC的理解

MVCC的理解MVCC(Mutil-Version Concurrency Control),就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。这就使得别的事务可以修改这条记录,反正每次修改都会在版本链中记录。SELECT可以去版本链中拿记录,这就实现了读-写,

2020-09-28 17:28:56 73

原创 Mysql架构深入理解(一)

Mysql架构Mysql架构连接层SQL 处理层缓存解析查询物理存储结构数据库表文件存储引擎MyISAMInnodbMysql架构连接层当 MySQL 启动(MySQL 服务器就是一个进程),等待客户端连接,每一个客户端连接请求,服务器都会新建一个线程处理(如果是线程池的话,则是分配一个空的线程),每个线程独立,拥有各自的内存处理空间show VARIABLES like '%max_connections%'连接到服务器,服务器需要对其进行验证,也就是用户名、IP、密码验证,一旦连接成

2020-09-28 14:55:21 105

原创 Mysql使用json数据类型

Mysql中json数据类型简单使用Json类型使用基础使用Json函数json_extract 抽取JSON_OBJECT 将对象转为 jsonjson_insert 插入数据json_merge 合并数据并返回json_replace替换数据其他函数Json类型使用基础使用创建表create table json_user (uid int auto_increment, data json, primary key(uid));插入数据insert into json_use

2020-09-27 17:19:53 244

原创 RocketMQ笔记-springboot整合

Springboot整合RocketMQ导入pom依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.2.0.RELEASE</version> </parent>

2020-09-02 17:02:14 137

原创 RocketMQ笔记-高可用

RocketMQ 主从同步(HA)机制高可用(HA 机制)特性是目前分布式系统中必备的特性之一,对一个中间件来说没有HA机制必然是一个重大的缺陷。RocketMQ的Broker 分为 Master (主)和 Slave(从) 两个角色,为了保证高可用性,Master 角色的机器接收到消息后 ,要把内容同步到 Slave 机器上,这样一旦 Master 宕机,Slave 机器依然可以提供服务。这个就是 RocketMQ 实现高可用(HA 机制)的原理。为了提高消息消费的高可用性,避免 Broker 发生

2020-09-02 15:11:42 212

原创 RocketMQ笔记-事务消息

事务消息实现思想RocketMQ 事务消息,是指发送消息事件和其他事件需要同时成功或同失败。比如银行转账, A 银行的某账户要转一万元到 B 银行的某账户。A 银 行发送“B 银行账户增加一万元” 这个消息,要和“从 A 银行账户扣除一万元”这个操作同时成功或者同时失败。RocketMQ 采用两阶段提交的方式实现事务消息,TransactionMQProducer 处理上面情况的流程是,先发一个“准备从 B 银行账户增加一万元”的消息,发送成功后做从 A 银行账户扣除一万元的操作 ,根据操作结果是否成功

2020-09-02 11:03:58 142

原创 RocketMQ笔记-深入消息模式

深入消息模式拉模式推模式消息队列负载与重新分布机制消息确认(ACK)消息ACK机制消息进度存储广播模式集群模式顺序消息全局顺序消息适用场景部分顺序消息延时消息拉模式代码上使用 DefaultMQPullConsumer获取 MessageQueues 并遍历(一个 Topic 包括多个 MessageQueue),如果是特殊情况,也可以选择指定的 MessageQueue 来读取消息维护 Offsetstore,从一个 MessageQueue 里拉取消息时,要传入 Offset 参数,随着不断的

2020-08-28 17:27:21 366

原创 RocketMQ笔记-基础入门

RocketMQ入门RocketMQ 介绍核心概念NameServer主题生产者消费者消息RocketMQ 的设计理念和目标设计理念设计目标RocketMq 中消息的发送单向(OneWay)发送Producer Group(生产者分组)Producer实例Message KeyTag可靠同步发送Message IDSendStatusQueue可靠异步发送RocketMQ 中消息发送的权衡RocketMQ 消息消费集群消费和广播消费集群消费模式广播消费模式使用集群模式模拟广播消费方式推模式拉模式Rocke

2020-08-26 15:47:49 262

原创 Redis笔记-主从复制与哨兵机制

Redis主从复制方式一: 新增 redis6380.conf, 加入 slaveof 172.17.0.2 6379, 在 6379 启动完后再启 6380,完成配置;方式二: redis-server --slaveof 172.17.0.2 6379查看状态:info replication断开主从复制:在 slave 节点,执行 : slaveof no one断开后再变成主从复制:6380:> slaveof 172.17.0.2数据较重要的节点,主从复制时使用密码验证: req

2020-08-20 15:57:45 139

原创 Redis笔记-基础语法

Redis入门Redis基础入门redis介绍特性使用场景安装与启动重要的指令全局命令字符串哈希 hash列表(list)集合 SET有序集合(ZSET)Redis基础入门redis介绍redis是一种基于键值对(key-value)的数据库,其中value可以string,hash,list,set,zset等多种数据结构,可以满足很多应用场景。还提供了键过期,发布订阅,事务,流水线,等附加功能。流水线:Redis的流水线功能允许客户端一次将多个命令请求发送给服务器,并将被执行的多个命令请求结果在

2020-08-15 13:45:14 124

原创 Dubbo源码探析-组件原理

过滤器dubbo过滤器的使用在resources下创建META-INF/dubbp/com.alibaba.dubbo.rpc.Filter文件在文件里指定过滤器类这里可以在执行方法前后执行一些操作@Activate(group = {"provider", "consumer"})public class FilterA implements Filter { @Override public Result invoke(Invoker<?> invoker,

2020-08-13 15:40:23 126

原创 Dubbo源码探析-服务注册过程

服务注册过程private void doExportUrls() { //获取注册中心URL List<URL> registryURLs = loadRegistries(true); //遍历所有协议,export protocol并注册到所有注册中心 for (ProtocolConfig protocolConfig : protocols) { doExportUrlsFor1Protocol(protocolCo

2020-08-10 18:23:20 312

原创 Dubbo源码探析-服务暴露过程

Dubbo 的服务暴露过程前面已经看到,dubbo 的组件中,ServiceBean和 ReferenceBean 是 比较特殊的。这两个组件,将完成 dubbo 服务的远程 rpc 过程。 ServiceBean 作为服务端,会在 bean 创建成功后,发起服务暴露流 程。其过程如下:在实现的 InitializingBean 接口中,spring 调用 afterPropertiesSet 方法,发起服务的暴露动作。 @Overridepublic void export() { s

2020-08-09 21:55:16 185

原创 每日一题:给定两个二叉树,编写一个函数来检验它们是否相同

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。链接:https://leetcode-cn.com/problems/same-tree思路:如果两个节点都为空说明节点相同两个节点一个为空一个不为空说明不相同直接返回false两个节点的值不一样返回false最后递归比较左/右两个节点的值是否相同 if(p == null && q == null){ return true; }else if(p

2020-08-07 10:35:57 332

原创 Dubbo源码探析-Dubbo的配置解析过程

服务的暴露与消费过程Dubbo 的配置解析过程xml 配置的解析过程注解的解析过程@EnableDubboConfig 的过程@DubboComponentScan 的过程service 注解reference 注解Dubbo 的服务暴露过程Dubbo 的配置解析过程dubbo 的配置解析,不论是 xml 方式的配置,还是注解的配置,目标都 是把配置的属性值提取出来,变成 dubbo 的组件 bean(先由 BeanDefinition 描述,然后委托 spring 生成组件 bean)。下面以 xm

2020-08-06 18:06:13 181 1

原创 每日一题:串联所有单词的子串

给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]解释:从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。输出的顺序不重要, [9,0] 也是有效答案。链

2020-08-05 15:02:05 159

原创 每日一题:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。链接:https://leetcode-cn.com/problems/add-strings思路:把两个字符串转换成竖式,从低到高逐位相加,如果当前位和超过 1010,则向高位进一位虽然我代码写的烂

2020-08-03 11:16:26 3295

原创 SPI 机制原理

因 dubbo 框架是建立的 SPI 机制上,因此在探寻 dubbo 框架源码前,我们需要先把 SPI 机制了解透彻java spi 机制SPI 全称 Service Provider Interface,是 Java 提供的一套用来被第三方实现或者扩展的 API,它可以用来启用框架扩展和替换组件。可以看到,SPI 的本质,其实是帮助程序,为某个特定的接口寻找它的实现类。而且哪些实现类的会加载,是个动态过程(不是提前预定好的)。有点类似 IOC 的思想,就是将装配的控制权移到程序之外,在模块化设计中

2020-07-30 18:04:47 497 1

原创 把二叉搜索数转换成累加树

给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。链接:https://leetcode-cn.com/problems/convert-bst-to-greater-tree递归写法思路:因为二叉搜索树的左子树<根<右子树的性质,按right-root-left的顺序遍历很容易求出累加和public class Algorithm538 { private int

2020-07-30 11:27:42 132

原创 Dubbo基础使用

在上面的章节,我们重点详述了,一个具体的 RPC 调用的全过程。那么在现实工作中,服务节点间的 RPC 调用是非常普遍并且错踪复杂的我们除了要关心 RPC 的过程实现,还需要考虑:服务方是集群时,如何挑选一台机器来响应客户端?因网络抖动引起的调用失败,如何重试来弥补?服务方机器的动态增减,如何能够让客户端及时了解到并做出调整? …Dubbo 的使命,即是解决上述围绕 RPC 过程的问题Dubbo服务的角色关系节点角色说明:调用关系说明:服务容器负责启动,加载,运行服务提供者。

2020-07-28 17:10:11 376

原创 分布式中的rpc调用

RPC场景和过程在微服务环境下,存在大量的跨 JVM 进行方法调用的场景,如下图:具体到某一个调用来说,希望 A 机器能通过网络,调用 B 机器内的某个服 务方法,并得到返回值:RPC 的实现切入口从本质上来讲,某个 jvm 内的对象方法,是无法在 jvm 外部被调用的好在 java 中的对象方法的调用,还有反射模式的调用:public class InvokeUtils { public static Object call(Object target,String method

2020-07-26 19:39:58 347

原创 sharding-jdbc分表分库

sharding-jdbc分表分库sharding-jdbc基础使用分表读写分离分库分片算法自定义分片算法标准分片策略(StandardShardingStrategy)复合分片(ComplexShardingStrategy)sharding-jdbc基础使用引入pom依赖<properties> <sharding-sphere.version>4.0.0-RC1</sharding-sphere.version></properties>

2020-07-25 22:07:02 99

原创 并发编程-线程基础(享学)

线程基础,线程之间的共享和协作CPU核心数和线程数的关系核心数:线程数=1:1 ;使用了超线程技术后 1:2CPU时间片轮转机制又称RR调度,会导致上下文切换什么是进程和线程进程:程序运行资源分配的最小单位,进程内会有多个线程,共享这个进程的资源线程:CPU调度最小单位,必须依赖进程而存在OS限制:Linux 1000个,windows 2000个并行和并发并行:可以同时运行的...

2020-03-29 21:12:56 172

Java分页处理

使用java jsp实现分页,数据库分页介绍使用

2013-03-15

ireport入门指南+饼状图+柱状图.pdf

ireport入门指南+饼状图+柱状图,jasperRoport+ireport 使用

2013-03-15

空空如也

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

TA关注的人

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