activeMq-2 高可用以及集群搭建
?
Activemq 的集群方法可以有多種實現方式,我們這里使用zookeeper來實現
要搭建集群,請確保已經搭建好zookeeper環境。這里不再演示。
基本原理:
使用ZooKeeper(集群)注冊所有的ActiveMQ Broker。只有其中的一個Broker可以對外提供服務(也就是Master節點),其他的Broker處于待機狀態,被視為Slave。如果Master因故障而不能提供服務,則利用ZooKeeper的內部選舉機制會從Slave中選舉出一個Broker充當Master節點,繼續對外提供服務。
原理圖如下:
首先我們把apache-activemq-5.11.1-bin.tar.gz,上傳到我們的一臺主節點上去,然后我們在(192.168.0.113一個節點上實現高可用集群即可)這里為了演示方便,我在一臺主機上,啟動三個實例。
?相關端口規劃如下
?主機IP ? ? ? ? ? ? 集群通信端口 ? ?消息端口 ? ?控制臺端口??節點目錄/usr/local/下
192.168.0.113 ????62621 ? ? ? ? ? ? 51511 ? ? ? ? 8162 ? ? ? ? ? ?activemq-cluster/node1/
192.168.0.113?????62622 ? ? ? ? ? ? 51512 ? ? ? ? 8163 ? ? ? ? ? ?activemq-cluster/node2/
192.168.0.113?????62623 ? ? ? ? ? ? 51513 ? ? ? ? 8164 ? ? ? ? ? ?activemq-cluster/node3/
?
在/usr/local?目錄下創建activemq-cluster目錄?在activemq-cluster創建node1,node2,node3
如圖所示
將上傳的apache-activemq-5.11.1-bin.tar.gz,解壓到/usr/local/activemq-cluster?然后對解壓好的文件改名
命令如下:
tar -zxvf ?apache-activemq-5.11.1-bin.tar.gz ?-C ?/usr/local/activemq-cluster
?
改名
mv apache-activemq-5.11.1/ ?node1
?
再次反復解壓apache-activemq-5.11.1-bin.tar.gz文件到/usr/local/activemq-cluster/下,分別改名為node2和node3文件夾
?
1 修改控制臺端口(默認為8161),在mq安裝路徑下的conf/jetty.xml進行修改?
分別修改為8162,8163,8164
2 集群配置文件修改:mq安裝路徑下的conf/activemq.xml進行修
改其中的持久化適配器,修改其中的bind、zkAddress、hostname、zkPath。
然后也需要修改mq的brokerName,并且每個節點名稱都必須相同。
?
第一處修改:brokerName=”activemq-cluster”(三個節點都需要修改并且相同 名字可以根據需求自己取 )
第二處修改?把<persistenceAdapter> 替換成下面這個
Node1的修改
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62621"
zkAddress="192.168.0.110:2181,192.168.0.111:2181,192.168.0.112:2181"
hostname="cc115"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
Node2的修改
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62622"
zkAddress="192.168.0.110:2181,192.168.0.111:2181,192.168.0.112:2181"
hostname="cc115"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
Node3的修改
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62623"
zkAddress="192.168.0.110:2181,192.168.0.111:2181,192.168.0.112:2181"
hostname="cc115"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
?
注意:hosename是你在/etc/hosts 綁定的本地ip以及自己域名
?
?
第三處修改:修改通信的端口,避免沖突
修改這個文件的通信端口號,三個節點都需要修改(51511,51512,51513)
?
啟動三個節點
/usr/local/activemq-cluster/node1/bin/activemq start(關閉stop)
/usr/local/activemq-cluster/node2/bin/activemq start(關閉stop)
/usr/local/activemq-cluster/node3/bin/activemq start(關閉stop)
查看日志看是否報錯
tail ?-n 100 ?/usr/local/activemq-cluster/node1/data/activemq.log
tail ?-n 100 /usr/local/activemq-cluster/node2/data/activemq.log
tail ?-n 100 /usr/local/activemq-cluster/node3/data/activemq.log
?
查看zookeeper上的節點信息
三個節點都注冊到了 到此主從搭建完畢。
集群就是多個這樣的主從在一起工作,也比較簡單,這里就不演示了。
可以看到工作的實例的端口是62621
訪問下web控制臺?
?
?那么 java端創建連接工廠的URL怎么寫呢?創建url如下?
failover:(tcp://192.168.0.113:51511,tcp://192.168.0.113:51512,tcp://192.168.0.113:51513)?Randomize=false
??
?
轉載于:https://www.cnblogs.com/javabigdata/p/7474759.html
總結
以上是生活随笔為你收集整理的activeMq-2 高可用以及集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四校联考 独立集
- 下一篇: 最优乘车(Floyd)