ActiveMQ集羣
1.1 何爲集羣?
集羣就是將相同的程序、功能,部署在兩臺或多臺服務器上,這些服務器對外提供的功能是徹底同樣的。經過不斷橫向擴展增長服務器的方式,以提升服務的能力
。
1.1.1 不集羣模式
1.1.2 集羣模式
1.2 集羣的優點:算法
一、集羣能夠解決單點故障問題;數據庫
二、集羣能夠提升系統服務能力;服務器
1.3 ActiveMQ集羣方式
1.shared filesystem Master-Slave方式主從集羣
性能
- 經過共享存儲目錄(kahaDB)來實現master和slave的主從信息備份;
- 全部ActiveMQ的broker都在不斷地獲取共享目錄的控制權,哪一個broker搶到了控制權,它就成爲master,它將鎖定該目 錄,其餘broker就只能成爲slave;
- 當master主出現故障後,剩下的slave從將再進行爭奪共享目錄的控制權,誰搶到共享目錄的控制權,誰就成爲主;
- 因爲他們是基於共享目錄,因此當主出現故障後,其上沒有被消費的消息在接下來產生的新的master主中能夠繼續進行 消費;
-
2.shared database Master-Slave方式主從集羣
該方式與shared filesystem方式相似,只是共享的存儲介質由文件系統改爲了數據庫。
3.Replicated LevelDB Store方式集羣
spa
- 基於可複製的LevelDB存儲方式的集羣
- 這種集羣方式是ActiveMQ5.9之後才新增的特性,它使用ZooKeeper從一組broker中協調選擇一個broker做爲master,其 他broker轉入slave模式;
- 全部slave從節點經過複製master主節點的消息來實現信息同步,當主出現故障後,沒有被消費的消息在從服務器上也同 步了一份,因此不會有信息的丟失;
- LevelDB 是 Google開發的一套用於持久化數據的高性能類庫,ActiveMQ利用該類庫進行數據的存儲;
- 只有master 接受客戶端鏈接,slave不接受客戶端鏈接;
- Master的全部存儲操做都將被複制到slaves;
- 在這個模式中,須要有半數以上的broker是正常的,集羣纔是可用的,超過半數broker故障,zookeeper的選舉算法將不 能選擇master,從而致使集羣不可用;
-