RocketMQ
文章平均质量分 79
鲍倩和鲍新春
这个作者很懒,什么都没留下…
展开
-
RocketMQ消息消费(Consumer)源码解析
RocketMQ中消息消费以消费组的模式开展,一个消费组内可以包含多个消费者,每一个消费者组可订阅多个主题,消费组内消费者之间有集群模式和广播模式两种消费模式。集群模式,主题下的同一条消息只允许被其中一个消费者消费。广播模式,主题下的同一条消息,将被集群内的所有消费者消费一次。消息服务器与消费者之间的消息传递也有两种模式:推模式、拉模式。所谓的拉模式即PullConsumer,是消费端主动拉起拉消息请求,而推模式即PushConsumer,是消息达到消息服务器后,推送给消息消费者。......原创 2022-08-23 22:13:00 · 2055 阅读 · 0 评论 -
RocketMQ中Broker接收消息流程代码解析
在步骤3中,会对topic进行检查,如果topic不存在,且设置成自动创建topic,就会在Broker上自动创建topic。第3步,最终回调的Callback类将数据写入buffer中,消息的序列化也是在callback里面完成的。putMessage会做一下检查,然后调用CommitLog的putMessage方法来写入消息。Broker最后调用MessageStore来存储数据。做接收和处理producer发送过来的消息。在RocketMQ中,Broker通过。...原创 2022-08-07 00:15:41 · 669 阅读 · 0 评论 -
RocketMQ消息发送源码解析
在DefaultMQProducer的构造函数中,主要是创建了类DefaultMQProducerImpl的实例,通过类DefaultMQProducerImpl的实例来实现各种逻辑。Producer作为生产者是RocketMQ的重要组成部分,下面我们通过一个消息发送的例子来说明Producer的工作原理。1、首先创建一个DefaultMQProducer实例,然后设置NameSrv的地址,再启动实例。2、当需要发送消息时,创建消息实例,然后发送消息给Broker。2.选择要发送到的消息队列。...原创 2022-07-31 23:22:30 · 624 阅读 · 0 评论 -
RocketMQ中的消息存储文件解析
RocketMQ中写入的消息会存储再commit文件下,然后再异步的转存到consumeQueue以及indexFile原创 2022-05-28 16:33:19 · 890 阅读 · 0 评论 -
RocketMQ 消息存储核心流程源码解析
RocketMQ作为一个消息队列需要一个高效的机制来存储消息,store模块就是RocketMQ的消息存储模块,下面介绍一下store中消息存储的核心流程。一、消息存储核心类DefaultMessageStore是消息存储的核心模块和入口,它的定义如下:public class DefaultMessageStore implements MessageStore { /** * 消息过滤器 */ private final MessageFilter原创 2022-05-22 10:52:22 · 341 阅读 · 0 评论 -
RocketMQ Broker启动流程解析
RocketMQ中Broker模块主要负责消息的存储、投递和查询以及服务高可用保证,它是RocketMQ中最为核心的模块,下面介绍一下它的启动流程。启动入口Broker是通过BrokerStartup的主函数启动的,代码如下:public static void main(String[] args) { start(createBrokerController(args));}先通过函数createBrokerController创建BrokerController对象,然后用st原创 2022-05-08 16:56:38 · 962 阅读 · 0 评论 -
RocketMQ的底层通信模块remoting 源码解析
remoting是RocketMQ的底层通信模块,RocketMQ底层通讯是使用Netty来实现的。原创 2022-05-04 00:09:50 · 1339 阅读 · 0 评论 -
RocketMQ的元数据管理模块NameServer启动流程分析
NameServer是RocketMQ的元数据管理模块,它负责整个RocketMQ集群的Broker和元数据管理。下面以NameServer的启动流程来说明NameServer的工作原理。一、启动入口NamesrvStartup 是的NameServer服务的启动类。 其入口是 main0( ) 方法。代码如下:public static NamesrvController main0(String[] args) { try { //创建NameSe原创 2022-05-01 17:08:07 · 631 阅读 · 0 评论 -
RocketMQ的部署架构与代码模块组成
RocketMQ是阿里巴巴开源的一款高性能、高吞吐量、低延迟、高可用的分布式消息队列,通过对RocketMQ源码的学习可以知道一个出色的消息队列如何设计、如何运行。nameServerNameServer 是专为 RocketMQ 设计的轻量级元数据管理模块,相当与Kafka中的zookeeper,管理集群中的Broker和元数据,整个Rocketmq集群的工作原理如下图所示:可以看到,RocketMQ架构上主要分为四部分, Broker、Producer、Consumer、NameServ原创 2022-04-24 20:40:44 · 323 阅读 · 0 评论