NettyRemotingServer是RocketMQ中Netty服务器的实现,封装了与Netty相关的组件。如服务端启动器、事件循环组、通道处理器及其执行器组。Nameserver和broker都会依赖该组件来实现网络通信和事件处理。本文就来分析一下该组件的实现原理。

在RocketMQ中,nameserver会负责管理broker和消息主题。本文会分析RocketMQ中nameserver的创建和启动过程。

在RocketMQ中,broker提供消息存储服务。生产者生成消息和消费者消费消息都要与broker进行交互。本文先来分析一下broker的创建和启动过程。

在前面介绍创建过程时,讲到会创建Netty客户端、以及一些其他服务。那么在启动过程中,就要启动该客户端和这些服务,包括消息拉取、再均衡、消息推送服务;除此以外,还要启动一些定时任务,比如发送心跳给broker。本文就来分析一下具体的实现过程。

MQClientInstance是RocketMQ中客户端实现,生产者和消费者都要依靠它。它内部封装了Netty客户端,实现了nameserver和broker交互的底层细节,为上层应用提供了统一的接口。本文就来分析一下该客户端的创建过程。

RocketMQ中的生产者是消息的发送方,本文先来了解一下生产者的创建和启动过程,后续也能够更好地理解消息的发送过程。

在RocketMQ中,支持两种消息消费模式,即PULL(拉模式)和PUSH(推模式),PUSH模式的效果类似broker将消息推送到消费者客户端,不过这是一种伪推送,是基于对PULL模式的封装来实现的。本文先来梳理一下消费者的创建和启动过程,从而能够更好理解消息的拉取过程。