rocketMq之叢集搭建(三)
角色介紹
Producer:訊息傳送者,如發信者
Consumer:訊息接收者,如收信者
Broker:暫存和傳輸訊息,如郵局
Name Server:管理broker,如郵局的管理機構,對比eureka註冊中心,他註冊的topic及broker的對應關係
Topic:訊息分類,Producer可以傳送訊息到1個或多個topic,Consumer也可以訂閱1個或多個topic
Message Queue:類似topic的分割槽,即子類目。使用者並行收發訊息
Broker主從
Master節點:主要處理寫操作,用於接收Producer的資訊,把訊息儲存到自己的節點當中
Slave節點:只能處理讀操作,用於Consumer消費資訊,注意Consumer也能從Master中消費資訊,這也是Consumer與Broker Master建立長連線的原因
Master節點會通過長連線把訊息同步到Slave中,方式可以採用非同步或同步
叢集特點
Name Server是無狀態的,可叢集部署,節點之間無訊息同步
Broker分Master和Slave,同一組Master和Slave的BrokerName相同。而Master和Slave通過BrokerId進行區分,0表示主節點,非0表示從節點。Master可以有多個Slave,而Slave只能有一個Master,而一組的多個Slave的BrokerId必須不同。每一個Broker都會通過長連線來向所有的Name Server定時註冊topic路由資訊
Producer向Name Server叢集的其中一個節點(隨機選擇),定期從Name Server獲取路由資訊,並向提供Topic服務的Master建立長連線(因為Slave只能讀,不能寫),並定時向master傳送心跳,Producer無狀態,可叢集部署
Consumer向Name Server叢集的其中一個節點(隨機選擇),定期從Name Server獲取路由資訊,並向提供Topic服務的Master、Consumer建立長連線(因為Master和Slave都能讀),並定時向Master、Slave傳送心跳,Consumer既可以向Master訂閱訊息,頁可以向Slave訂閱訊息,訂閱規則由Broker配置決定
叢集模式
單Master模式:一旦Broker重啟或當機,導致整個服務不可用,可用於本地測試
多Master模式:無Slave,優點:單個Master重啟或當機對應用無影響,缺點:單臺機器當機期間,訊息在機器恢復前不能訂閱,影響實時性
多Master多Slave非同步模式:每一個Master對應一個Slave,有多對Master-Slave,HA採取非同步複製方式(即Producer向Broker Master寫完訊息後,Broker先保持資料,再傳送回復給Producer,最後向Slave同步訊息),優點:磁碟損壞,訊息丟失非常小,且實時性不受影響,當機可以從Slave消費,此過程對應用透明
多Master多Slave同步模式:每一個Master對應一個Slave,有多對Master-Slave,HA採取同步雙寫方式(即Producer向Broker Master寫完訊息後,Broker先儲存資料,然後向Slave同步訊息,同步完後再傳送回復給Producer)。優點:資料與服務都無單點故障,缺點:效能比非同步模式大約低10%左右,單訊息RT會略高
相關文章
- 【環境搭建】RocketMQ叢集搭建MQ
- rocketMq叢集master模式搭建MQAST模式
- RocketMQ雙主雙從叢集搭建MQ
- RocketMQ叢集搭建-4.2.0版本MQ
- 4 種高可用 RocketMQ 叢集搭建方案!MQ
- RocketMQ4.7.1雙主雙從叢集搭建MQ
- Kafka學習之(五)搭建kafka叢集之Zookeeper叢集搭建Kafka
- Redis叢集搭建 三主三從Redis
- Redis叢集搭建(三主三從)Redis
- RocketMQ 4.7.1 環境搭建、叢集、MQ整合SpringBootMQSpring Boot
- 搭建zookeeper叢集(偽叢集)
- 叢集搭建
- 大資料之CDH叢集搭建大資料
- zookeeper叢集及kafka叢集搭建Kafka
- 微服務Consul系列之叢集搭建微服務
- Kafka學習之(六)搭建kafka叢集Kafka
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- redis叢集搭建Redis
- nacos 叢集搭建
- kafka叢集搭建Kafka
- Ambari叢集搭建
- 搭建ELK叢集
- RabbitMQ叢集搭建MQ
- HBASE叢集搭建
- zookeeper 叢集搭建
- mysql叢集搭建MySql
- Zookeeper叢集搭建
- 搭建 Redis 叢集Redis
- 搭建 zookeeper 叢集
- Elasticsearch 叢集搭建Elasticsearch
- mysql 叢集搭建MySql
- Storm叢集搭建ORM
- 從0到1搭建spark叢集---企業叢集搭建Spark
- java商城系統架構之第三篇——叢集架構搭建Java架構
- linux下搭建ZooKeeper叢集(偽叢集)Linux
- Elasticsearch高階之-叢集搭建,資料分片Elasticsearch
- 【greenplum】greenplum叢集搭建
- ElasticSearch 7.8.1叢集搭建Elasticsearch