ActiveMQ訊息佇列叢集搭建
ActiveMQ的叢集是依賴於Zookeeper的,ActiveMq的叢集是,主從叢集的方式,主的掛掉,才會自動切換到從,從的才開始執行。
zookeeper架構
伺服器名稱 |
埠 |
IP地址 |
主從狀態 |
db1 |
2181 |
10.51.52.224 |
主伺服器 |
db2 |
2181 |
10.51.52.220 |
從伺服器 |
db3 |
2181 |
10.51.52.223 |
從伺服器 |
activemq架構
伺服器名稱 |
埠 |
IP地址 |
主從狀態 |
db1 |
61616 |
10.51.52.224 |
主伺服器 |
db2 |
61616 |
10.51.52.220 |
從伺服器 |
db3 |
61616 |
10.51.52.223 |
從伺服器 |
安裝ActiveMq
官網下載地址:https://activemq.apache.org/components/classic/download
本次使用的安裝包為apache-activemq-5.13.0-bin.tar.gz
#解壓安裝包,解壓到node1目錄,注意-C是大寫的 tar -zxvf apache-activemq-5.13.0-bin.tar.gz -C /opt
mv apache-activemq-5.13.0 activemq
#修改jetty vim /opt/activemq/conf/jetty.xml #修改管控臺端口 ,同樣其他幾個節點也修改
<property name="host" value="0.0.0.0"/>
<property name="port" value="8161"/>
#修改brokername #3個MQ例項的brokerName必須一致,要不然你會在叢集啟動時出現: #Not enough cluster members when using LevelDB replication 這樣的錯誤。 vim /opt/activemq/conf/activemq.xml
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-cluster" dataDirectory="${activemq.data}"> #修改persistenceAdapter # replicas 節點數 # bind 繫結地址 # zkAddress zookeeeper的叢集地址 # hostname 主機名稱 # zkPath mq在zookeeepr上儲存的地址
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="10.51.52.223:2181,10.51.52.224:2181,10.51.52.220:2181"
zkPath="/opt/activemq/leveldb-stores"
hostname="10.51.52.224"
#修改通訊埠
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
綜上
配置檔案:/opt/activemq/conf/activemq.xml、/opt/activemq/conf/jetty.xml 資料目錄:/opt/activemq/data 啟動:/opt/activemq/bin/activemq start 關閉:/opt/activemq/bin/activemq stop
檢視日誌
/opt/activemq/data/activemq.log
檢視啟動程序資訊
root@xxx /opt]# jps 15826 activemq.jar 23042 Jps 21763 QuorumPeerMain 28260 Main 4892 startup.jar 15695 Elasticsearch
連線zookeeper檢視節點資訊
./zkCli.sh [zk: localhost:2181(CONNECTED) 1] ls /opt/activemq/leveldb-stores [00000000036, 00000000039, 00000000037]
然後就是測試了!
好記性不如爛筆頭,最難不過堅持