1. 程式人生 > >1、RocketMQ基礎概念

1、RocketMQ基礎概念

Pay:

broker叢集圖示如下:

broker、topic、queue關係:

brokerAddrTable:HashMap<String/* brokerName */, BrokerData>;表示每個brokerName下面的一主多從的broker資訊

BrokerData:裡面有cluster、brokerName、brokerAddrs屬性,cluster表示對應叢集,brokerName表示brokerName下的一主多從broker,HashMap<Long/* brokerId */, String/* broker address */> brokerAddrs 表示哪個cluster叢集下哪個brokerName下哪個brokerId對應的broker地址

topicQueueTable:HashMap<String/* topic */, List<QueueData>> topicQueueTable;表示每個topic下面的訊息佇列詳情

QueueData:每個topic是跨多個broker的,QueueData表示topic對應的位置,即一個topic在那幾個broker上,有多少讀、寫佇列,即對應的訊息佇列MessageQueue資訊,比如topic1跨兩個broker,那麼queueData裡面的brokerName屬性這個topic在哪個broker上,readQueueNums表示這個topic在這個broker上的讀佇列readMessageQueue的數量,writeQueueNums為寫佇列writeMessageQueue的數量,perm屬性表示讀/寫/讀和寫。

MessagaQueue:裡面有topic、brokerName、queueId屬性,表示哪個broker上的哪個topic的queueId為**的訊息佇列TopicRouteData:定義了topic路由的相關資訊,即一個topic到哪些brokerAddr去找等等,用於網路傳輸,TopicRouteData與屬性QueueData,BrokerData關係

ConfigManager:配置管理器的父類,各種配置的管理介面

TopicConfigManager:繼承ConfigManager,用於管理Topic的配置,裡面有topicConfigTable和當前配置的版本dataVersion

topicConfigTable:ConcurrentMap<String, TopicConfig> topicConfigTable,key是topicName,value是主題對應的配置

TopicConfig:定義topic的配置項,包括topicName、讀對列、寫佇列個數,預設都是16個

dataVersion:一般用於表識資料(配置)的版本,用來輔助判斷是否需要更新資料(配置)等

TopicConfigSerializeWrapper:包括topicConfigTable和dataVersion

RouteInfoManager:

SubscriptionData:用來形容要訂閱什麼樣的訊息資料, 並不是真正的被訂閱的資料

BrokerLiveInfo:

TopicPublishInfo