RocketMQ
git地址
https://github.com/apache?utf8=%E2%9C%93&q=rocketmq&type=&language=
阿里中間件
http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/
RocketMQ 物理部署結(jié)構(gòu)
如上圖所示二蓝, RocketMQ的部署結(jié)構(gòu)有以下特點:
- Name Server是一個幾乎無狀態(tài)節(jié)點,可集群部署,節(jié)點之間無任何信息同步。
- Broker部署相對復雜歉备,Broker分為Master與Slave,一個Master可以對應多個Slave诀拭,但是一個Slave只能對應一個Master疫向,Master與Slave的對應關系通過指定相同的BrokerName,不同的BrokerId來定義商佑,BrokerId為0表示Master锯茄,非0表示Slave。Master也可以部署多個茶没。每個Broker與Name Server集群中的所有節(jié)點建立長連接肌幽,定時注冊Topic信息到所有Name Server。
- Producer與Name Server集群中的其中一個節(jié)點(隨機選擇)建立長連接抓半,定期從Name Server取Topic路由信息喂急,并向提供Topic服務的Master建立長連接,且定時向Master發(fā)送心跳笛求。Producer完全無狀態(tài)廊移,可集群部署。
- Consumer與Name Server集群中的其中一個節(jié)點(隨機選擇)建立長連接涣易,定期從Name Server取Topic路由信息画机,并向提供Topic服務的Master、Slave建立長連接新症,且定時向Master步氏、Slave發(fā)送心跳。Consumer既可以從Master訂閱消息徒爹,也可以從Slave訂閱消息荚醒,訂閱規(guī)則由Broker配置決定。