运⾏架构
- nameServer 命名服务
NameServer 是 RocketMQ 的 轻量级注册中心,负责管理集群的路由信息(Broker 地址、Topic 队列分布等),其核心作用是解耦 Broker 与客户端,实现动态服务发现。 - broker 核⼼服务
RocketMQ最核⼼的消息存储、传递、查询等功能都要由broker提供。 - client 客户端
Client包括消息⽣产者和消息消费者。
消息模型
RocketMQ会把主题的消息分为数个MessageQueue(队列先进先出FIFO)
RocketMQ的消息模型
⽣产者和消费者都可以指定⼀个Topic发送消息或者拉取消息。Topic中的消息会分布在后⾯多个MessageQueue当中。这些MessageQueue会分布到⼀个或者多个broker中。
消息消费模式
Push 模式
- RocketMQ 内部使用的是 Pull 模型实现,但对外提供的是 Push API。
- 消费者注册回调函数,由客户端自动拉取消息并调用回调进行处理,看起来像是消息被“推”过来。
- 简单易用,适合大多数业务场景。
Pull 模式
- 由应用程序主动控制什么时候去拉消息,可以做更精细的控制。
- 需要自己管理拉取偏移量、消费位置和轮询策略。
- 更加复杂,适用于一些高级场景(如二次过滤、本地缓存等)。