ActiveMQ部署模式
1.單例模式
這個就不啰嗦了,略過。
2.無共享主從模式
這是最簡單的 Provider 高可用性的方案,主從節點分別存儲 Message。從節點需要配置為連接到主節點,并且需要特殊配置其狀態。
所有消息命令(消息,確認,訂閱,事務等)都從主節點復制到從節點,這種復制發生在主節點對其接收的任何命令生效之前。并且,當主節點收到持久消息,會等待從節點完成消息的處理(通常是持久化到存儲),然后再自己完成消息的處理(如持久化到存儲)后,再返回對 Producer 的回執。
從節點不啟動任何傳輸,也不能接受任何客戶端或網絡連接,除非主節點失效。當主節點失效后,從節點自動成為主節點,并且開啟傳輸并接受連接。這是,使用 failover 傳輸的客戶端就會連接到該新主節點。
Broker 連接配置如下:
| 1 | failover://(tcp://masterhost:61616,tcp://slavehost:61616)?randomize=false |
但是,這種部署模式有一些限制,
- 主節點只會在從節點連接到主節點時復制其活動狀態,因此當從節點沒有連接上主節點之前,任何主節點處理的 Message 或者消息確認都會在主節點失效后丟失。不過你可以通過在主節點設置 waitForSlave 來避免,這樣就強制主節點在沒有任何一個從節點連接上的情況下接受連接。
- 就是主節點只能有一個從節點,并且從節點不允許再有其他從節點。
- 把正在運行的單例配置成無共享主從,或者配置新的從節點時,你都要停止當前服務,修改配置后再重啟才能生效。
在可以接受一些故障停機時間的情況下,可以使用該模式。
從節點配置:
| 123 | <services>????????<masterConnector remoteURI="tcp://remotehost:62001" userName="Rob" password="Davies"/></services> |
此外,可以配置 shutdownOnMasterFailure 項,表示主節點失效后安全關閉,保證沒有消息丟失,允許管理員維護一個新的從節點。
3.共享存儲主從模式
允許多個代理共享存儲,但任意時刻只有一個是活動的。這種情況下,當主節點失效時,無需人工干預來維護應用的完整性。另外一個好處就是沒有從節點數的限制。
有兩種細分模式:
(1)基于數據庫
它會獲取一個表上的排它鎖,以確保沒有其他 ActiveMQ 代理可以同時訪問數據庫。其他未獲得鎖的代理則處于輪詢狀態,就會被當做是從節點,不會開啟傳輸也不會接受連接。
(2)基于文件系統
需要獲取分布式共享文件鎖,linux 系統下推薦用 GFS2。
總結
以上是生活随笔為你收集整理的ActiveMQ部署模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ActiveMQ相关存储介绍
- 下一篇: ActiveMQ网络连接