關(guān)于消息隊列之間的通信問(wèn)題,可以通過(guò)采用ActiveMQ的Broker Cluster集群方式實(shí)現,ActiveMQ的集群方式主要由兩種:Master Slave和Broker Cluster。
1、Master Slave集群方式:Master提供服務(wù),Slave實(shí)時(shí)備份Master的數據,以保證消息的可靠性。當Master失效時(shí),Slave自動(dòng)升級為Master,客戶(hù)端自動(dòng)連接到Slave;
2、Broker Cluster集群方式:在多個(gè)ActiveMQ實(shí)例之間進(jìn)行消息的路由。如:生產(chǎn)者應用連接一個(gè)ActiveMQ實(shí)例,稱(chēng)為MQ1,所有消息都由該實(shí)例提供。兩個(gè)消費者應用分別連接另外兩個(gè)ActiveMQ實(shí)例,分別為MQ2和MQ3,兩個(gè)消息消費者需要消費MQ1上的消息,但它們連接的都不是MQ1,可以通過(guò)該集群方式方式把MQ1上的消息路由到MQ2和MQ3。
Broker Cluster的集群分為Static Discovery和Dynamic Discovery兩種。
(1)Static Discovery 方式:通過(guò)硬編碼的方式使用所有已知ActiveMQ實(shí)例節點(diǎn)的URI地址。為了保證消費者不因某個(gè)節點(diǎn)的失效而導致不能消費消息,在消費者應用中需要配置所有節點(diǎn)的URI。這種靜態(tài)路由存在的原因可能是因為靜態(tài)處理的方式使路由速度更快。
(2)Dynamic Discover 方式:在配置ActiveMQ實(shí)例時(shí),不需要知道所有其它實(shí)例的URI地址,只需在所有實(shí)例的配置文件中進(jìn)行相應設置,就可以實(shí)現消息在所有ActiveMQ實(shí)例之間進(jìn)行路由。
Master Slave模式不支持負載均衡,但可以通過(guò)消息的實(shí)時(shí)備份或共享,保證消息服務(wù)的可靠性;Broker Cluster模式支持負載均衡,可以提高消息的消費能力,但不能保證消息的可靠性。
所以為了支持負載均衡,同時(shí)又保證消息的可靠性,可以采用Msater Slave與Broker Cluster相結合的模式。
關(guān)于不同MQ的性能對比,請參考以下這篇文章:
http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。