会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
松饼人
博客园
首页
新随笔
联系
订阅
管理
2020年1月7日
ScheduledThreadPoolExecutor中定时周期任务的实现源码分析
摘要: ScheduledThreadPoolExecutor是一个定时任务线程池,相比于ThreadPoolExecutor最大的不同在于其阻塞队列的实现 首先看一下其构造方法: 1 public ScheduledThreadPoolExecutor(int corePoolSize, 2 Thread
阅读全文
posted @ 2020-01-07 16:18 松饼人
阅读(622)
评论(0)
推荐(1)
2019年8月13日
RocketMQ中PullConsumer的消息拉取源码分析
摘要: 在PullConsumer中,有关消息的拉取RocketMQ提供了很多API,但总的来说分为两种,同步消息拉取和异步消息拉取 同步消息拉取以同步方式拉取消息都是通过DefaultMQPullConsumerImpl的pullSyncImpl方法: 首先通过subscriptionAutomatica
阅读全文
posted @ 2019-08-13 16:22 松饼人
阅读(2255)
评论(0)
推荐(0)
RocketMQ中PullConsumer的启动源码分析
摘要: 通过DefaultMQPullConsumer作为默认实现,这里的启动过程和Producer很相似,但相比复杂一些 【RocketMQ中Producer的启动源码分析】 DefaultMQPullConsumer的构造方法: 这里会封装一个DefaultMQPullConsumerImpl,类似于P
阅读全文
posted @ 2019-08-13 00:03 松饼人
阅读(985)
评论(0)
推荐(1)
2019年8月8日
RocketMQ中Broker的HA策略源码分析
摘要: Broker的HA策略分为两部分①同步元数据②同步消息数据 同步元数据 在Slave启动时,会启动一个定时任务用来从master同步元数据 这里设置了定时任务,执行slaveSynchronize的syncAll方法可以注意在之前会通过setMasterAddr将Master的地址设为null,这是
阅读全文
posted @ 2019-08-08 07:41 松饼人
阅读(978)
评论(0)
推荐(1)
2019年8月7日
RocketMQ中Broker的刷盘源码分析
摘要: 上一篇博客的最后简单提了下CommitLog的刷盘 【RocketMQ中Broker的消息存储源码分析】 (这篇博客和上一篇有很大的联系) Broker的CommitLog刷盘会启动一个线程,不停地将缓冲区的内容写入磁盘(CommitLog文件)中,主要分为异步刷盘和同步刷盘 异步刷盘又可以分为两种
阅读全文
posted @ 2019-08-07 00:35 松饼人
阅读(1179)
评论(0)
推荐(0)
2019年8月6日
RocketMQ中Broker的消息存储源码分析
摘要: Broker和前面分析过的NameServer类似,需要在Pipeline责任链上通过NettyServerHandler来处理消息 【RocketMQ中NameServer的启动源码分析】 实际上就通过前面提到的SendMessageProcessor的processRequest方法处理 【Ro
阅读全文
posted @ 2019-08-06 07:46 松饼人
阅读(1619)
评论(0)
推荐(0)
2019年8月5日
RocketMQ中Broker的启动源码分析(二)
摘要: 接着上一篇博客 【RocketMQ中Broker的启动源码分析(一)】 在完成准备工作后,调用start方法: 这里最主要的是通过BrokerController 的start方法来完成启动 BrokerController的start方法: 首先通过messageStore启动messageSto
阅读全文
posted @ 2019-08-05 06:01 松饼人
阅读(1302)
评论(0)
推荐(0)
2019年8月4日
RocketMQ中Broker的启动源码分析(一)
摘要: 在RocketMQ中,使用BrokerStartup作为启动类,相较于NameServer的启动,Broker作为RocketMQ的核心可复杂得多 【RocketMQ中NameServer的启动源码分析】 主函数作为其启动的入口: 首先通过createBrokerController方法生成Brok
阅读全文
posted @ 2019-08-04 06:26 松饼人
阅读(3261)
评论(1)
推荐(1)
2019年8月3日
RocketMQ中NameServer的启动源码分析
摘要: 在RocketMQ中,使用NamesrvStartup作为启动类 主函数作为其启动的入口: main0方法: 首先通过createNamesrvController方法生成NameServer的控制器NamesrvController createNamesrvController方法: 这里创建了
阅读全文
posted @ 2019-08-03 01:15 松饼人
阅读(1561)
评论(0)
推荐(0)
2019年8月2日
RocketMQ中Producer消息的发送源码分析
摘要: 上篇博客介绍过Producer的启动,这里涉及到相关内容就不再累赘了 【RocketMQ中Producer的启动源码分析】 Producer发送消息,首先需要生成Message实例: 其中properties中存放需要配置的属性,由MessageConst规定其key: 在创建完Message后,通
阅读全文
posted @ 2019-08-02 18:31 松饼人
阅读(2199)
评论(0)
推荐(0)
下一页
公告