摘要: ScheduledThreadPoolExecutor是一个定时任务线程池,相比于ThreadPoolExecutor最大的不同在于其阻塞队列的实现 首先看一下其构造方法: 1 public ScheduledThreadPoolExecutor(int corePoolSize, 2 Thread 阅读全文
posted @ 2020-01-07 16:18 松饼人 阅读(609) 评论(0) 推荐(1) 编辑
摘要: 在PullConsumer中,有关消息的拉取RocketMQ提供了很多API,但总的来说分为两种,同步消息拉取和异步消息拉取 同步消息拉取以同步方式拉取消息都是通过DefaultMQPullConsumerImpl的pullSyncImpl方法: 首先通过subscriptionAutomatica 阅读全文
posted @ 2019-08-13 16:22 松饼人 阅读(2218) 评论(0) 推荐(0) 编辑
摘要: 通过DefaultMQPullConsumer作为默认实现,这里的启动过程和Producer很相似,但相比复杂一些 【RocketMQ中Producer的启动源码分析】 DefaultMQPullConsumer的构造方法: 这里会封装一个DefaultMQPullConsumerImpl,类似于P 阅读全文
posted @ 2019-08-13 00:03 松饼人 阅读(964) 评论(0) 推荐(1) 编辑
摘要: Broker的HA策略分为两部分①同步元数据②同步消息数据 同步元数据 在Slave启动时,会启动一个定时任务用来从master同步元数据 这里设置了定时任务,执行slaveSynchronize的syncAll方法可以注意在之前会通过setMasterAddr将Master的地址设为null,这是 阅读全文
posted @ 2019-08-08 07:41 松饼人 阅读(951) 评论(0) 推荐(1) 编辑
摘要: 上一篇博客的最后简单提了下CommitLog的刷盘 【RocketMQ中Broker的消息存储源码分析】 (这篇博客和上一篇有很大的联系) Broker的CommitLog刷盘会启动一个线程,不停地将缓冲区的内容写入磁盘(CommitLog文件)中,主要分为异步刷盘和同步刷盘 异步刷盘又可以分为两种 阅读全文
posted @ 2019-08-07 00:35 松饼人 阅读(1101) 评论(0) 推荐(0) 编辑
摘要: Broker和前面分析过的NameServer类似,需要在Pipeline责任链上通过NettyServerHandler来处理消息 【RocketMQ中NameServer的启动源码分析】 实际上就通过前面提到的SendMessageProcessor的processRequest方法处理 【Ro 阅读全文
posted @ 2019-08-06 07:46 松饼人 阅读(1589) 评论(0) 推荐(0) 编辑
摘要: 接着上一篇博客 【RocketMQ中Broker的启动源码分析(一)】 在完成准备工作后,调用start方法: 这里最主要的是通过BrokerController 的start方法来完成启动 BrokerController的start方法: 首先通过messageStore启动messageSto 阅读全文
posted @ 2019-08-05 06:01 松饼人 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 在RocketMQ中,使用BrokerStartup作为启动类,相较于NameServer的启动,Broker作为RocketMQ的核心可复杂得多 【RocketMQ中NameServer的启动源码分析】 主函数作为其启动的入口: 首先通过createBrokerController方法生成Brok 阅读全文
posted @ 2019-08-04 06:26 松饼人 阅读(3187) 评论(1) 推荐(1) 编辑
摘要: 在RocketMQ中,使用NamesrvStartup作为启动类 主函数作为其启动的入口: main0方法: 首先通过createNamesrvController方法生成NameServer的控制器NamesrvController createNamesrvController方法: 这里创建了 阅读全文
posted @ 2019-08-03 01:15 松饼人 阅读(1537) 评论(0) 推荐(0) 编辑
摘要: 上篇博客介绍过Producer的启动,这里涉及到相关内容就不再累赘了 【RocketMQ中Producer的启动源码分析】 Producer发送消息,首先需要生成Message实例: 其中properties中存放需要配置的属性,由MessageConst规定其key: 在创建完Message后,通 阅读全文
posted @ 2019-08-02 18:31 松饼人 阅读(2151) 评论(0) 推荐(0) 编辑