
rocketmq
文章平均质量分 93
JavaHxg
Java从业者
展开
-
五、分布式事务消息
业务场景:用户A转账100元给用户B,这个业务比较简单,具体的步骤:1、用户A的账户先扣除100元2、再把用户B的账户加100元如果在同一个数据库中进行,事务可以保证这两步操作,要么同时成功,要么同时不成功。这样就保证了转账的数据一致性。但是在微服务架构中,因为各个服务都是独立的模块,都是远程调用,都没法在同一个事务中,都会遇到分布式事务问题。原创 2023-07-24 11:25:46 · 137 阅读 · 0 评论 -
四、Consumer源码分析
连续发送5条消息,消息是不定长,首先所有信息先放入 Commitlog中,每一条消息放入Commitlog的时候都需要上锁,确保顺序的写入。当Commitlog写成功了之后。数据通过ReputMessageService类定时同步到ConsunmeQueue中,写入Consume Queue的内容是定长的,固定是20个Bytes(offset 8个、size 4个、Hashcode of Tag 8个)。原创 2023-07-24 10:58:36 · 98 阅读 · 0 评论 -
三、Producer源码分析
当然如果投递中发生问题,比如第一次投递就失败,那么很大的可能性是集群状态下的一台Broker挂了,所以在重试发送中进行规避。首先RocketMQ默认的发送失败有重试策略,默认是2,也就是如果向不同的Broker发送三次都失败了那么这条消息的发送就失败了,作为RocketMQ肯定是尽力要确保消息发送成功。如果是网络不太好的环境,推荐故障延迟机制,消息队列选择时,会在一段时间内过滤掉RocketMQ认为不可用的broker,以此来避免不断向宕机的broker发送消息,从而实现消息发送高可用。原创 2023-07-24 10:48:53 · 498 阅读 · 2 评论 -
二、RocketMQ消息存储源码分析
Broker模块涉及到的内容非常多,本课程重点讲解以下技术点:1、Broker启动流程分析2、消息存储设计3、消息写入流程4、亮点分析:NRS与NRC的功能号设计5、亮点分析:同步双写数倍性能提升的CompletableFuture6、亮点分析:Commitlog写入时使用可重入锁还是自旋锁?7、亮点分析:零拷贝技术之MMAP提升文件读写性能8、亮点分析:堆外内存机制。原创 2023-07-12 13:58:25 · 960 阅读 · 0 评论 -
一、rocketmq整体架构及nameServer源码分析
RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性,是阿里巴巴双 11 使用的核心产品。原创 2023-07-12 10:08:12 · 972 阅读 · 0 评论