ActiveMQ配置高可用性的方式



     當一個應用被部署於生產環境,災備計划是非常重要的,以便從網絡故障,硬件故障,軟件故障或者電源故障中恢復。通過合理的配置ActiveMQ,可以解決上訴問題。最典型的配置方法是運行多個Broker,一旦某台機器或者某個broker失效,其他broker能夠頂上去。這種方式叫做Master/Slave,一個broker作為Master提供服務,而其他broker則作為slave等待master失效從而頂上。 目前activemq提供2種master/slave配置方式:


   * Sharing nothing

          broker擁有自己唯一的消息存儲


   * Sharing storage

          broker之間共享一個消息存儲設備,比如關系數據庫,共享文件系統等。但是一個時間段內只能有一個broker占據他們。

1. 不共享式Master/Slave
     該模式下,Master與Slave擁有各自獨立的消息存儲設備。他是最簡單的提供高可用性的消息Broker。Slave需要額外的配置,而Master不需要。
     所有的消息命令如消息、反饋、訂閱、事務等會被從master復制到slave,如圖所示,她發生在master收到這些消息之前。


     slave啟動后會連接到master,所以master要先啟動起來。slave只有在master失效后才會建立通信連接以頂替master。
     客戶端給master發送消息后,master會首先將他轉發到slave,等待slave反饋存儲完畢后,master才開始處理這個消息。
     當master失效后,slave有2個選擇
     關閉slave
          管理員重新配置這個slave作為master,然后再配置一個slave作為替補,並將之前存儲的消息數據復制一份給slave,以同步。
     開啟通信端口並初始化網絡連接
          slave自動升級為master

     缺點:
          master只會把slave連接后的消息傳給他,而連接master之前的消息,不會被復制過去。不過你可以通過配置waitForSlave屬性來讓master一直等待slave啟動才開始工作。
          master只允許一個slave,而slave不能再有slave

     何時使用:
          當master失效后,可接受服務器維護時間,以及管理手工部署新的master和slave


2. 共享存儲式Master/Slave
     不共享式的Master Slave讓各個broker保持了相對獨立性,而共享式則是讓所有broker共享同一個存儲器,這個存儲器一定時間內只能被一個broker占有。相比非共享式,優點是一旦master失效,無需手工恢復,而且也不限制slave broker數量。
     共享式目前分為2種,共享數據庫和共享文件系統。    值得一提的是,另外新的一種是基於zookeeper的,將會在5.9版中發布,詳情查看 http://www.cnblogs.com/dycg/p/3177450.html
     
     基於數據庫的共享
     原理是把消息命令都存儲在數據庫中,並且在數據庫中加鎖,一旦master失效后,slave獲得該鎖后繼續服務。
          

     只要你擁有數據庫,並且不在意使用數據庫而造成的性能相對其他方式有所降低的話,可以考慮。

     基於共享文件系統的方式
     其實就是把數據庫換成了一個共享文件系統如SAN等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM