1. 程式人生 > 其它 >ActiveMQ訊息佇列叢集搭建

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&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
    <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;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]

然後就是測試了!

好記性不如爛筆頭,最難不過堅持