摘要: RocketMQ的消费模式分为集群消费和广播消费 启动机制分两种:pull模式和push模式 PULL模式 pull模式相对简单,获取到messaqueue,用户自行遍历,获取的到当前queue的消息进行处理,最后自行管理点位或者上报给broker /* * Licensed to the Apac 阅读全文
posted @ 2021-08-21 23:43 gaojy 阅读(427) 评论(0) 推荐(0) 编辑
摘要: RocketMQ事务支持 整体流程 实现细节 下面的代码是producer完成1-4的步骤: public TransactionSendResult sendMessageInTransaction(final Message msg, final LocalTransactionExecuter 阅读全文
posted @ 2021-08-15 12:31 gaojy 阅读(626) 评论(0) 推荐(0) 编辑
摘要: RocketMQ-broker存储机制-Index 数据结构 在indexFileHeader中存放着开始和结束的时间戳,开始和结束的物理点位,以及索引的个数。 索引文件加载 public boolean load(final boolean lastExitOK) { File dir = new 阅读全文
posted @ 2021-08-12 20:26 gaojy 阅读(168) 评论(0) 推荐(0) 编辑
摘要: RocketMQ-broker存储机制-HA数据同步 HA机制解决读写分离模式下slave与master的数据同步问题,在master broker高负载的情况下,实现slave broker的数据订阅。HA的主要实现逻辑在HaServer类中,入口在putMessage的handleHA()方法初 阅读全文
posted @ 2021-08-10 21:42 gaojy 阅读(209) 评论(0) 推荐(0) 编辑
摘要: RocketMQ-存储机制-刷盘机制 在理解RocketMQ刷盘实现之前,先理解一下上图展示的刷盘的2种实现的: 1)直接通过内存映射文件,通过flush刷新到磁盘 2)当异步刷盘且启用了对外内存池的时候,先write到writeBuffer,然后commit到Filechannel,最后flush 阅读全文
posted @ 2021-08-09 20:50 gaojy 阅读(727) 评论(0) 推荐(0) 编辑
摘要: broker的可用性策略-快速失败机制 具体实现在BrokerFastFailure,会执行一个定时任务扫描写消息任务的队列,当发现ospagecache繁忙的时候,就取出一个请求任务快速返回,直到OSPageCache不在繁忙。 然后会遍历任务队列,如果发现某一个请求任务已经超时,那么也会立即返回 阅读全文
posted @ 2021-08-04 20:55 gaojy 阅读(67) 评论(0) 推荐(0) 编辑
摘要: RocketMQ-broker状态管理及数据统计 在RocketMQ中,状态管理有BrokerStatsManager,ConsumerStatsManager,FilterServerStatsManager,其实现的方式都是一样的。 这边就拿BrokerStatsManager做介绍 一个Sta 阅读全文
posted @ 2021-08-04 20:20 gaojy 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 什么是ACL? 简称访问控制列表,涉及到用户,资源,权限,角色。 用户 用户是访问控制的基础要素,也不难理解,RocketMQ ACL必然也会引入用户的概念,即支持用户名、密码。 资源 资源,需要保护的对象,在RocketMQ中,消息发送涉及的Topic、消息消费涉及的消费组,应该进行保护,故可以抽 阅读全文
posted @ 2021-08-04 15:02 gaojy 阅读(1074) 评论(0) 推荐(0) 编辑
摘要: Java8新特性CompletableFuture 详细API示例 参考:https://www.cnblogs.com/laomumu/p/12386971.html 示例: flushOKFuture3 是处理了flushOKFuture1 和 flushOKFuture2的结果,当 flush 阅读全文
posted @ 2021-08-02 16:32 gaojy 阅读(155) 评论(0) 推荐(0) 编辑
摘要: RocketMQ-broker存储机制 该篇主要讲解rocketmq-store模块,了解其存储机制,文件读写原理。 为何Rocketmq存储写文件这么快呢? 简单来说,总结两点: 1)pagecache+虚拟内存 2)零拷贝+java文件映射 Broker存储目录结构 commitlog 文件名是 阅读全文
posted @ 2021-08-01 21:23 gaojy 阅读(354) 评论(0) 推荐(0) 编辑