在ActiveMQ 5.9中,引入了複製LevelDB存儲。它處理使用Apache ZooKeeper從一組配置爲複製單個LevelDB存儲的代理節點中選擇一個主服務器。然後將所有從屬LevelDB存儲與主數據庫同步,通過將所有更新複製到主數據庫,從而使它們保持最新狀態。這可能會成爲首選的主從配置。
主/從簡介
以下是可用的不同類型的主/從配置:
如果使用的是SAN等共享網絡文件系統,則建議使用Shared File System Master Slave。如果您樂於放棄高性能期刊,並使用純JDBC作爲持久性引擎,則應該改用JDBC Master Slave。對於那些願意嘗試新技術的人,“ 複製LevelDB存儲”提供了類似於SAN解決方案的速度,而無需設置高可用性共享文件系統。
原理
僞集羣
zookeeper集羣搭建參考另一博客:https://blog.csdn.net/qq_39720208/article/details/102891587
創建mq三個節點
修改控制檯端口
linux域名映射
修改三個節點的brokerName一致
持久化配置
參考官網配置
<broker brokerName="broker" ... >
...
<persistenceAdapter>
<replicatedLevelDB
directory="activemq-data"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="zoo1.example.org:2181,zoo2.example.org:2181,zoo3.example.org:2181"
zkPassword="password"
zkPath="/activemq/leveldb-stores"
hostname="broker1.example.org"
/>
</persistenceAdapter>
...
</broker>
依次修改消息端口
1節點默認
創建zookeeper集羣shell腳本
mq集羣啓動shell腳本
查看zookeeper啓動
客戶端啓動成功查看mq是否在zookeeper中
查看master
說明只能訪問主節點 ,控制檯輸入ip:8161能進行訪問,其他兩個slave節點無法訪問控制檯
代碼測試
說明消息發送到主節點