RocketMQ 簡介

2023-07-12 16:29 更新

RocketMQ是阿里開源的一款高性能、高可靠、高實時的分布式消息中間件, 目前已經(jīng)捐贈給Apache基金會,現(xiàn)在已成為 Apache 頂級孵化項目?! ?/p>

Rocketmq 解決哪些問題?

  • Publish/Subscribe(發(fā)布訂閱模式)是消息中間件的最基本功能,RocketMQ也是支持的。
  • 消息優(yōu)先級RocketMQ 所有消息是持久化消息,因此不可能按照優(yōu)先級來排序, 這樣對于系統(tǒng)的開銷會很大,因此RocketMQ是通過定義不同的隊列來實現(xiàn), 例如,可以創(chuàng)建普通隊列,優(yōu)先級高的隊列, 將不同優(yōu)先級發(fā)送到不同隊列即可。
  • 消息有序消費,就是消息按發(fā)送的順序來消費消息
  • 消息過慮消息過慮支持兩種形式
    1. Broker端消息過濾, 優(yōu)點是減少了對于Consumer無用消息的網(wǎng)絡(luò)傳輸; 缺點是增加了Broker的負(fù)擔(dān),實現(xiàn)相對復(fù)雜。
    2. Consumer端消息過濾 這種過濾方式可由應(yīng)用完全自定義實現(xiàn),但是缺點是很多無用的消息要傳輸?shù)紺onsumer端。
  • 消息持久化
  • 支持分布式事務(wù),目前還除了RocketMQ支持,其它的消息隊列沒有看到有實現(xiàn)這個功能!

當(dāng)然 RocketMQ 解決的問題還有很多,這里不再一一介紹!

RocketMQ 邏輯部署結(jié)構(gòu)

RocketMQ 邏輯部署圖

如上圖所示,RocketMQ的邏輯部署結(jié)構(gòu)有Producer和Consumer兩個特點。

  • Producer Group (消息生產(chǎn)者組)用來表示一個發(fā)送消息應(yīng)用,一個Producer Group下包含多個Producer實例, 可以是多臺機(jī)器,也可以是一臺機(jī)器的多個進(jìn)程,或者一個進(jìn)程的多個Producer對象。 一個Producer Group可以發(fā)送多個Topic消息,Producer Group作用如下: 標(biāo)識一類Producer 可以通過運維工具查詢這個發(fā)送消息應(yīng)用下有多個Producer實例發(fā)送分布式事務(wù)消息時, 如果Producer中途意外宕機(jī),Broker會主動回調(diào)Producer Group內(nèi)的任意一臺機(jī)器來確認(rèn)事務(wù)狀態(tài)。
  • Consumer Group (消息消費者級)用來表示一個消費消息應(yīng)用,一個Consumer Group下包含多個Consumer實例, 可以是多臺機(jī)器,也可以是多個進(jìn)程,或者是一個進(jìn)程的多個Consumer對象。 一個Consumer Group下的多個Consumer以均攤方式消費消息, 如果設(shè)置為廣播方式,那么這個Consumer Group下的每個實例都消費全量數(shù)據(jù)。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號