rocketmq
法号大威天龙
哼!雕虫小技,竟敢班门弄斧,大威天龙!
展开
-
rocketMQ的consumer 源码分析 -事务消息(5)
概述应用程序会有这样的场景,完成本地事务后,需要发布事件已完成的消息。消息完成和事务是两个操作,如何保证两个操作保持一致,就是下面要展开的。通过事务,让应用依赖若干实用的抽象保证,没有竞态条件,没有磁盘问题,事务隐藏了这些问题,应用无需担心这些问题。分布式事务有很多种实现:例如两阶段提交、三阶段提交等今天来分享一下rocketMQ的事务消息实现机制对于应用程序来说,执行流程是这样的开启本地事务发送prepare消息prepare消息成功后执行本地事务,并保存事务和消息的关系,如果成功则通原创 2020-12-21 00:17:22 · 184 阅读 · 0 评论 -
rocketMQ的consumer 源码分析 -消息拉取(4)
rocketMQ的consumer 源码分析概述消费者的启动流程消息拉取核心类pullRequest:拉取消息的请求ProcessQueue :消息在消费者端的快照核心属性消息拉取的基本流程这里的问题拉取到了为何消息结果还是为空?那么问题来了,什么时候拉取偏移量会不合法?概述消息消费是以消费组为单位,消费组可以订阅多个主题。每个消费组有两种模式,1.广播模式,一条消息被集群内的所有消费者消费;2.集群模式,同一条消息只能被所有消费者消费一次。消息传递的方式有两种,推模式和拉模式。推模式是在拉模式上包了一原创 2020-12-05 13:15:02 · 542 阅读 · 0 评论 -
rocketMQ的HA机制 源码分析(3)
HA 服务rocketmq 的高可用机制分为两部分,(1)主从复制,(2)读写分离主从复制避免了 broker 的单点故障,提供了消息消费的高可用。消息在主节点落盘后,还需要将消息复制到从节点,同步发送消息才算完成;如果主节点宕机,消费者还可以从从节点上拉取消息。读写分离提高了主节点的可用性,让从节点也参与了消息拉取负载。目录HA 服务主从复制通知发送者复制数据从节点接收数据总结主从复制rocketmq的 HA 服务在org.apache.rocketmq.store.ha.HAService中原创 2020-08-23 23:28:04 · 307 阅读 · 0 评论 -
rocketMQ的Namesrv 源码分析(2)
路由补充篇路由发现路由更新(删除)定时任务检测broker 下线路由发现上篇讲到 路由信息在 namesrv 上注册好了,没有客户端使用怎么行呢。rocketmq 的 namesrv 不会主动推送topic 的路由到客户端,而是由客户端主动拉取最新的路由信息。这里有一个问题:客户端会在哪些情况下去 namesrv 拉取路由信息,并且拉取的topic 路由信息是陈旧时,如何切换 namesrv 去重新拉取呢?producer 分析见客户端一般是按照使用的 topic 去拉取的,请求的消息类型为Requ原创 2020-08-08 12:38:03 · 251 阅读 · 0 评论 -
rocketMQ的Namesrv 源码分析(1)
namesrv源码分析rocketMQ启动流程功能实现篇路由信息路由注册路由发现路由更新rocketMQ架构文档传送门:架构设计这里今天跟着源码看看nameserver的源码实现,首先 namesrv 是类似于 zookeeper 的路由信息管理中心。每个 broker 连接所有的namesrv,每个namesrv拥有所有的 broker 信息,namesrv之间相互不通信,这让namesrv变成一个无状态的服务,所以任意一个namesrv的下线都不会影响服务。主要是代码看起来会比较容易上手一些。话原创 2020-08-07 23:00:00 · 255 阅读 · 0 评论