運?架構
- 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 模式
- 由應用程序主動控制什么時候去拉消息,可以做更精細的控制。
- 需要自己管理拉取偏移量、消費位置和輪詢策略。
- 更加復雜,適用于一些高級場景(如二次過濾、本地緩存等)。