rocketMq官網
http://rocketmq.apache.org/rocketMq邏輯概念介紹
rocketMq邏輯圖
備注:
改圖檔分享自
李占衛的網上家園 說明在rocketMq的中核心4元件為namesrv、broker、consumer、producer。
broker:消息存儲中心,主要用來存儲消息并通過namesrv對外提供服務。
namesrv:無狀态的注冊中心,功能用來儲存broker的相關的元資訊并提供給producer在發送消息過程中和提供給consumer消費消息過程中查找broker資訊。
producer:消息生産者,通過namesrv擷取broker的位址并發送消息。
consumer:消息消費者,通過namesrv擷取broker的位址并消費消息。
rocketMq部署情況介紹
rocketMq部署圖
rocketMq的叢集概念細分
rocketMq實際部署圖,每個元件都可以用叢集形式出現。
producer:通過producerGroup的名字來标記自己是一個叢集。
consumer:通過consumerGroup的名字來标記自己是一個叢集。
namesrv:互相之間無通信,通過部署多台機器來标記自己是一個僞叢集。
broker:通過clusterName來标記叢集,每個broker通過clusterName來表明cluster層面叢集,通過brokerName來标明broker層面叢集,通過brokerId标明主從身份。
rocketMq消息存儲介紹
rocketMq消息存儲
說明:rocketMq的消息存儲通過二級索引來進行,其中實際消息存儲在Commit Log的邏輯隊列中(磁盤檔案消息順序寫),consume queue儲存着每個消息消費隊列的待消費的資料并且指向commit Log。
rocketMq線上配置介紹
rocketMq實際資料存儲
rocketMq線上環境的真實存儲,每個broker的存儲資料格式就是類似上圖。
config目錄consumerFilter:儲存consumer端的消息過濾配置,應該是等消費端配置了過濾規則就會在這個檔案中增加記錄。
consumerOffset:消費進度偏移量,以topic@consumerGroup作差別,0:125的0代表隊列,125代表消費偏移量。
consumerOffset
delayOffset:延遲隊列消費進度,其中2代表延遲粒度,2000代表消費進度。
delayOffset
subscriptionGroup:表示訂閱消費的消費組。
subscriptionGroup
topic:rocketMq中topic的資訊,可以了解topic為業務消息分組的粒度,一般一個topic為一類業務的邏輯消息集合。
topic
commitlog目錄rocketMq實際存儲消息的位置。
consumequeue目錄%DLQ%@ConsumeGroupA:消費分組的死信隊列,儲存指向commit log的索引。
%RETRY%@ConsumeGroupA:消費分組的充實隊列,儲存指向commit log的索引。
SCHEDULE_TOPIC_XXXX:延遲消息隊列,儲存指向commit log的索引。
TOPICA:topic的消費隊列存儲,儲存指向commit log的索引。