自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 【分布式事务Seata源码解读二】AT模式下Client端启动流程

本文从源码的角度分析一下AT模式下Client端启动流程,所谓的Client端,即业务应用方。分布式事务分为三个模块:TC、TM、RM。其中TC位于seata-server端,而TM、RM都是运行在client端。seata在Client端的启动都是通过AOP来体现的,这样可以最大限度的减少对业务代码的侵入,如果是使用springboot项目,可以直接引用seata-spring-boot-starter来实现自动配置。非springboot项目也可以参考seata-spring-boot-starter

2020-08-14 11:52:23 369 1

原创 【分布式事务Seata源码解读一】Server端启动流程

实现分布式事务的核心要点:事务的持久化,事务所处的各种状态事务参与方的各种状态都需要持久化,当实例宕机时才能基于持久化的数据对事务回滚或提交,实现最终一致性定时对超时未完成事务的处理(继续尝试提交或回滚),即通过重试机制实现事务的最终一致性分布式事务的跨服务实例传播,当分布式事务跨多个实例时需要实现事务的传播,一般需要适配不同的rpc框架事务的隔离级别:大多数分布式事务为了性能,默认的隔离级别是读未提交幂等性:对于XA或者seata的AT这样的分布式事务来说,都已经默认实现了幂等性,而TCC、S

2020-06-23 19:32:33 1644 2

原创 Redis客户端Lettuce源码【四】Lettuce是如何断线重连的

上一篇主要介绍了RedisCommand在Lettuce中是如何流转的,以及Lettuce是如何通过单一连接处理多线程请求的。这一篇主要介绍一下Lettuce中是如何实现Redis断线重连的,在介绍之前先看一张图回忆一下RedisComman流转过程中牵扯到的几个类,以及类之间的关系。如上图所示RedisCommand在Lettuce中经历了如下流程:RedisAsyncCommands调用S...

2020-01-06 23:04:43 9161 6

原创 Redis客户端Lettuce源码【三】Lettuce是如何发送Command命令到redis的

lettuce-core版本: 5.1.7.RELEASE在上一篇介绍了Lettuce是如何基于Netty与Redis建立连接的,其中提到了一个很重要的CommandHandler类,这一期会介绍CommandHandler是如何在发送Command到Lettuce中发挥作用的,以及Lettuce是如何实现多线程共享同一个物理连接的。还是先看一下我们的示例代码,这一篇主要是跟进去sync.get...

2019-12-26 10:38:45 4611 3

原创 Redis客户端Lettuce源码【二】StatefulRedisConnection源码

先看一下Lettuce的基本使用方法,使用Lettuce大概分为如下几步:基于Redis连接信息创建RedisClient基于RedisClient创建StatefulRedisConnection从Connection中获取Command,基于Command执行Redis命令操作。/** * @author xiaobing * @date 2019/12/20 */publ...

2019-12-24 22:57:45 3814 4

原创 Redis客户端Lettuce源码【一】Jedis vs Lettuce

文章目录基本实现对比性能对比Jedis的基本用法Jedis配合Springboot RedisTemplate使用Lettuce的基本用法Lettuce配合Springboot RedisTemplate使用结论基本实现对比JedisLettuce支持JDK版本JDK6+JDK8+IO模型BIONIO(Netty)连接复用连接池单一长连接线程...

2019-12-24 10:20:08 1362

原创 Redis性能问题排查指引

Redis性能问题排查指引

2023-02-02 17:23:50 740

原创 Redis性能问题排查指引

Redis性能问题排查指引

2023-02-02 17:21:04 811

原创 Nginx与Upstream之间产生大量TIME_WAIT连接的解决办法

Nginx与Upstream之间产生大量TIME_WAIT连接的解决办法

2023-02-02 17:19:48 1539 1

原创 Skywalking ContextManager.activeSpan抛NullPointerException的bug

触发bug的条件当前TraceSegment创建的太多了span(超过参数agent.span_limit_per_segment的配置, 默认300)之后,执行ContextManager.createExitSpan的时候会创建NoopExitSpangrpc agent 对远程调用拦截的时候会有两个Interceptor生效,也就是说会执行两次ContextManager.Create...

2019-12-25 09:47:39 5329

原创 Skywalking对应的ES历史数据不删除的问题

结论原因1 配置问题 配置文件中的recordDataTTL、otherMetricsDataTTL配置不生效, 可以认为是bug解决方案:方法1:手动设置minuteMetricsDataTTL、hourMetricsDataTTL 、dayMetricsDataTTL。recordData的删除会使用dayMetricsDataTTL配置的值。方法2:修改源码原因2 Skywalk...

2019-12-25 09:46:56 5619 1

原创 Skywalking对应的ES的CPU很高的问题

结论原因1:ES的新生代配置的太小,yong gc频率很高, 1s一次yonggc解决方案:手动设置新生代、老年代比例 -XX:NewRatio=1原因2:ES的索引没有配置为高性能写模式( 这个配置立杆见影 )解决方案:对skywalking对应的index添加如下配置 "index.merge.scheduler.max_thread_count" : "1", "in...

2019-12-25 09:46:36 2116

原创 Skywalking阻塞的一次调查记录

最近开始研究skywalking准备应用到系统中,在测试环境测试的时候遇到一个现象:在oapserver刚启动的时候,trace数据上传一切正常,大概几分钟之后就不再有SegmentTrace数据上传了。ES 实例只有一台 分了8G内存service实例数:30+观察oapserver日志,在oapserver刚启动的时候报了下面这个错误,看代码之后猜测是因为elasticsearch还没...

2019-12-25 09:45:41 4509

原创 分布式事务Saga(四)事务恢复SagaRecoveryManager

分布式事务Saga (一) TCC vs Saga分布式事务Saga(二)事务管理者SagaTransactionalAspect分布式事务Saga(三)事务参与方管理SagaParticipantAspect分布式事务Saga(四)事务恢复SagaRecoveryManager项目地址:https://github.com/yangxb2010000/saga上一篇讲的都是系统正常运行...

2019-12-23 19:08:25 456

原创 分布式事务Saga(三)事务参与方管理SagaParticipantAspect

分布式事务Saga (一) TCC vs Saga分布式事务Saga(二)事务管理者SagaTransactionalAspect分布式事务Saga(三)事务参与方管理SagaParticipantAspect分布式事务Saga(四)事务恢复SagaRecoveryManager项目地址:https://github.com/yangxb2010000/saga回到PaymentServ...

2019-12-23 19:07:52 338

原创 分布式事务Saga(二)事务管理者SagaTransactionalAspect

分布式事务Saga (一) TCC vs Saga分布式事务Saga(二)事务管理者SagaTransactionalAspect分布式事务Saga(三)事务参与方管理SagaParticipantAspect分布式事务Saga(四)事务恢复SagaRecoveryManager文章目录直接看spring-cloud版的demo直接看demo的代码项目地址:https://github....

2019-12-23 19:07:20 548

原创 分布式事务Saga (一) TCC vs Saga

分布式事务Saga (一) TCC vs Saga文章目录TCC流程支付服务在调用try阶段失败的事务回滚本项目Saga流程saga 正常流程图saga 异常流程图结论项目地址:https://github.com/yangxb2010000/saga该项目的实现本质上说不是一个严格意义上的Saga实现,更像是一个简化版的TCC事务先对比一下Saga与TCC的区别TCC流程Try 预...

2019-12-23 19:06:47 859

空空如也

空空如也

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

TA关注的人

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