![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RocketMQ
Z_ChenChen
这个作者很懒,什么都没留下…
展开
-
RocketMQ中Producer消息的发送源码分析
上篇博客介绍过Producer的启动,这里涉及到相关内容就不再累赘了【RocketMQ中Producer的启动源码分析】Producer发送消息,首先需要生成Message实例:public class Message implements Serializable { private static final long serialVersionUID = 8445773977080...原创 2019-08-02 18:31:14 · 1254 阅读 · 0 评论 -
RocketMQ中PullConsumer的启动源码分析
通过DefaultMQPullConsumer作为默认实现,这里的启动过程和Producer很相似,但相比复杂一些【RocketMQ中Producer的启动源码分析】DefaultMQPullConsumer的构造方法:public DefaultMQPullConsumer(final String consumerGroup, RPCHook rpcHook) { this.co...原创 2019-08-13 00:03:27 · 364 阅读 · 0 评论 -
RocketMQ中Broker的刷盘源码分析
上一篇博客简单提了下CommitLog的刷盘 【RocketMQ中Broker的启动源码分析(二)】CommitLog有两种刷盘实现:public enum FlushDiskType { SYNC_FLUSH, ASYNC_FLUSH}同步和异步,同步刷盘由GroupCommitService实现,异步刷盘由FlushRealTimeService实现,默认采用异步刷...原创 2019-08-07 00:35:07 · 239 阅读 · 0 评论 -
RocketMQ中Broker的消息存储源码分析
Broker和前面分析过的NameServer类似,需要在Pipeline责任链上通过NettyServerHandler来处理消息【RocketMQ中NameServer的启动源码分析】实际上就通过前面提到的SendMessageProcessor的processRequest方法处理【RocketMQ中Broker的启动源码分析(一)】SendMessageProcessor的proc...原创 2019-08-06 07:46:01 · 230 阅读 · 0 评论 -
RocketMQ中Broker的HA策略源码分析
Broker的HA策略分为两部分①同步元数据②同步消息数据同步元数据在Slave启动时,会启动一个定时任务用来从master同步元数据if (role == BrokerRole.SLAVE) { if (null != slaveSyncFuture) { slaveSyncFuture.cancel(false); } this.slaveSy...原创 2019-08-08 07:41:20 · 282 阅读 · 0 评论 -
RocketMQ中Broker的启动源码分析(二)
接着上一篇博客 RocketMQ中Broker的启动源码分析(一)在完成准备工作后,调用start方法:public static BrokerController start(BrokerController controller) { try { controller.start(); String tip = "The broker[" + ...原创 2019-08-05 06:00:14 · 812 阅读 · 0 评论 -
RocketMQ中Producer的启动源码分析
RocketMQ中通过DefaultMQProducer创建ProducerDefaultMQProducer定义如下:public class DefaultMQProducer extends ClientConfig implements MQProducer { protected final transient DefaultMQProducerImpl defaultMQProd...原创 2019-07-31 03:10:30 · 883 阅读 · 0 评论 -
RocketMQ中Broker的启动源码分析(一)
在RocketMQ中,使用BrokerStartup作为启动类,相较于NameServer的启动,Broker作为RocketMQ的核心可复杂得多【RocketMQ中NameServer的启动】主函数作为其启动的入口:public static void main(String[] args) { start(createBrokerController(args));}首先通...原创 2019-08-04 06:26:14 · 897 阅读 · 0 评论 -
RocketMQ中NameServer的启动源码分析
在RocketMQ中,使用NamesrvStartup作为启动类主函数作为其启动的入口:public static void main(String[] args) { main0(args);}main0方法:public static NamesrvController main0(String[] args) { try { NamesrvControl...原创 2019-08-02 22:38:55 · 312 阅读 · 0 评论 -
RocketMQ中PullConsumer的消息拉取源码分析
在PullConsumer中,有关消息的拉取RocketMQ提供了很多API,但总的来说分为两种,同步消息拉取和异步消息拉取同步消息拉取以同步方式拉取消息都是通过DefaultMQPullConsumerImpl的pullSyncImpl方法:private PullResult pullSyncImpl(MessageQueue mq, SubscriptionData subscript...原创 2019-08-13 16:21:01 · 349 阅读 · 0 评论