
RocketMq源码
文章平均质量分 94
szhlcy
这个作者很懒,什么都没留下…
展开
-
RocketMQ源码解析——Broker部分之消息接收过程`SendMessageProcessor`(3)
文章目录Broker启动时的准备netty启动时候的准备逻辑注册事件到Broker请求接收逻辑netty请求事件触发内部处理逻辑前面说了消息在Producer端的发送逻辑。这里结合Broker端来说一下。消息在Broker端接收的逻辑。Broker启动时的准备netty启动时候的准备逻辑关于Broker的启动逻辑这里注册事件到Broker请求接收逻辑netty请求事件触发内部处理逻辑...原创 2021-12-19 13:40:18 · 771 阅读 · 0 评论 -
RocketMQ源码解析——Producer部分之消息发送过程的一些重试和容错逻辑(2)
文章目录根据Broker和消息发布信息选择一个MessageQueue——`selectOneMessageQueue`前面说了消息发送的主逻辑这里主要说一下根据Broker和消息发布信息选择一个MessageQueue——selectOneMessageQueueselectOneMessageQueue是根据消息Topic的信息和BrokerName进行选择一个队列。这个方法定义在,容错策略的实现类MQFaultStrategy中。Producer端在发送消息的时候,会先根据Topic找到指定的原创 2021-12-14 23:13:06 · 752 阅读 · 0 评论 -
RocketMQ源码解析——Producer部分之消息发送过程DefaultMQProducer到DefaultMQProducerImpl(1)
文章目录发送消息入口`DefaultMQProducer`消息发送实现`DefaultMQProducerImpl`发送消息主方逻辑实现 `sendDefaultImpl`根据topic获取消息发布信息`tryToFindTopicPublishInfo`发送消息入口DefaultMQProducer前面说了RocketMQ消息生产者的启动逻辑,现在接着说对应的消息发送的逻辑。消息发送的入口在DefaultMQProducer类的send方法。这个方法有很多的重载方法对应的参数各不一样这里举例其中参数最原创 2021-12-11 13:09:58 · 2324 阅读 · 0 评论 -
RocketMQ源码解析——Producer部分之生产者客户端MQClientInstance启动(2)
文章目录 前面说了消息生产者的启动主要流程,从启动脚本到DefaultMQProducer再到DefaultMQProducerImpl然后到MQClientInstance。都是一步一步委托的。这里之所以把MQClientInstance单独拿出来说,是因为MQClientInstance这个类不仅仅在生产者用到,他还是消费者,RocketMQ的Admin控制台的共用客户端实体类。...原创 2021-11-20 16:16:03 · 1203 阅读 · 0 评论 -
RocketMQ源码解析——Producer部分之Producer启动过程DefaultMQProducer(1)
文章目录从官网说明开始字段摘要构造方法摘要使用方法摘要代码分析`DefaultMQProducer`的构造方法生产者实例的启动`start`方法 前面分析Broker的启动过程,接下来分析Producer的启动过程。从官网说明开始 先来看看官网的发送消息额实例代码public class Producer { public static void main(String[] args) throws MQClientException { // 创建指定分组名的生产者原创 2021-08-10 21:04:38 · 1193 阅读 · 0 评论 -
RocketMQ源码解析——Broker部分之Broker启动过程BrokerStartup(2)
文章目录 前面原创 2021-08-03 21:03:30 · 350 阅读 · 0 评论 -
RocketMQ源码解析——Broker部分之Broker启动过程BrokerStartup(1)
文章目录从启动脚本到启动类启动类`BrokerStartup`创建前的准备工作`createBrokerController`从启动脚本到启动类 我们知道RocketMQ的Broker端的启动方式为,进入到RocketMQ的bin目录下,运行对应的mqbroker脚本。 RocketMQ的Linux和Windows脚本内容也就是对应的mqbroker脚本,这里贴出来看看.......省略部分脚本export ROCKETMQ_HOMEsh ${ROCKETMQ_HOME}/bin/runbro原创 2021-07-19 23:11:07 · 659 阅读 · 0 评论 -
RocketMQ源码解析——存储部分(8)操作消息相关日志的中介DefaultMessageStore
文章目录前面介绍了RocketMQ的一些主要的日志文件,CommitLog,ConsumeQueue,IndexFile原创 2021-06-29 22:35:21 · 403 阅读 · 0 评论 -
RocketMQ源码解析——存储部分(7)延迟消息的原理`ScheduleMessageService`
文章目录延迟消息描述介绍延迟消息描述介绍RocketMQ的定时消息(延迟队列)是指消息发送到broker后,不会立即被消费,等待特定时间投递给真正的topic。broker有配置项messageDelayLevel,默认值为1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h,18个level。可以配置自定义messageDelayLevel。注意,messageDelayLevel是broker的属性,不属于某个topic。发消息时,设置原创 2021-06-15 22:45:46 · 732 阅读 · 1 评论 -
RocketMQ源码解析——存储部分(6)RocketMQ主从同步原理相关的HAService和HAConnection
文章目录引导引导 前面介绍了RocketMQ的CommitLog文件相关的类分析CommitLog物理日志相关的CommitLog类。其中有介绍到消息高可用刷盘的部分,也就是对应的handleHA方法,在这个方法中,如果设置了主从同步策略为同步,就会把对应的写入的消息的偏移量构造成一个GroupCommitRequest对象,然后丢到HAService类中进行处理,然后等待同步结果来进行后续操作,代码如下 public void handleDiskFlush(AppendMessageResul原创 2021-05-11 14:58:54 · 462 阅读 · 0 评论 -
RocketMQ源码解析——存储部分(5)IndexFile消息索引日志文件相关的`IndexService`类
文章目录IndexFile文件讲解概述文件结构IndexFile文件相关的类IndexFile头文件相关的`IndexHead`类IndexFile读写相关的`IndexFile`类字段属性内部方法分析构造方法保存key对应index的`putKey`方法根据时间区间查询和key来进行查询消息的`selectPhyOffset`方法操作IndexFile文件集合的`IndexService`字段属性内部方法构造方法创建消息索引和保存的`buildIndex`根据消息以及时间范围查询消息集合的`queryOf原创 2021-04-22 15:05:57 · 395 阅读 · 0 评论 -
RocketMQ源码解析——存储部分(4)ConsumeQueue逻辑日志文件相关的`ConsumeQueue`类
文章目录原创 2021-04-08 10:25:45 · 597 阅读 · 0 评论 -
RocketMQ源码解析——存储部分(3)CommitLog物理日志相关的`CommitLog`类
文章目录原创 2021-03-21 14:36:44 · 833 阅读 · 0 评论 -
RocketMQ源码解析——存储部分(2)对`MappedFile`进一步封装的`MappedFileQueue`
文章目录原创 2021-03-17 21:53:56 · 379 阅读 · 0 评论 -
RocketMQ源码解析——存储部分(1)消息存储的底层`MappedFile`
文章目录原创 2021-03-06 14:39:37 · 596 阅读 · 1 评论 -
RocketMQ文件存储体系介绍
文章目录原创 2021-03-06 14:38:17 · 925 阅读 · 1 评论