随笔分类 - RocketMQ
摘要:概览 RocketMQ 主从同步指的是消息发送到master的内存中,并且等到同步到slaver的内存才返回; 刷盘则是将内存中的消息写入磁盘,同样分为同步刷盘和异步刷盘。同步刷盘指一条消息写入磁盘才返回成功,异步刷盘指写入内存就返回成功,稍后异步线程刷盘。 上文说到消息append后会返回一个状态
阅读全文
摘要:第一篇介绍了存储的概览,定位到消息追加消息处细看一下 获取mappedFile ——> 追加消息 ——> 处理结果 @DefaultMappedFile#appendMsgInner() public AppendMessageResult appendMessagesInner(final Mes
阅读全文
摘要:这篇文章介绍在RocketMQ存储中使用到的一些概念,包括和零拷贝相关的MappedFile 看下MappedFile的类图结构,DefaultMappedFile实现了MappedFile接口,同时继承了ReferenceResource类,这个类中实现了统计mappedFile的引用次数及释放等
阅读全文
摘要:这篇文章记录RocketMQ大致的存储流程,源码为5.0.1-SNAPSHOT 入口从Broker模块的SendMessageProcessor开始 @SendMessageProcessor#sendMessage() 5.0中将putmessage中的一些校验逻辑下沉到了hook中 for (P
阅读全文
摘要:概述 消息的消费是一个先从Broke拉到client端,再consume的过程 客户端有一个PullMessageService线程拉取消息,然后把消息放到缓存中(红黑树结构),然后启动 ConsumeMessageService线程消费这些消息,这个过程会使用Consumer启动时注册的Liste
阅读全文