您好,登錄后才能下訂單哦!
小編給大家分享一下ActiveMQ集群負載均衡、安裝、配置的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
一. MQ介紹
MQ是應用程序對應用程序的通信方法,它可以作為程序中間媒介,通過消息(用戶的各種類型的數據文件,某個應用向其它應用發出的處理請求等都可以作為消息)的方式解耦rpc。
二. MQ適用場景
為完成某一無需即時返回且耗時的業務,將該操作提取出來,進行了異步處理,節省了服務器的請求響應時間,從而提高了系統的吞吐量,如:城市停車場中的業務場景、電商中的訂單物流倉儲服務、不同平臺間對接都離不開MQ
三. 以ActiveMQ為例,集群安裝、配置、負載均衡
在MQ選型時,很多人都會疑惑,到底選哪種?RabbitMq、ActiveMq、ZeroMq、kafka,我到是覺得這個和業務是分不開的,例如只是普通的系統對接或是未關鍵業務數據處理,沒有必要糾結,直接用ActiveMq就行,如果對數據的處理性能、吞吐、容錯性要求較高,還是需要自己測試下各個MQ的優缺點,下面這個是網絡數據,我也沒測試過,給大家一個參考: [RabbitMq、ActiveMq、ZeroMq、kafka之間的比較,資料匯總](http://blog.csdn.net/linsongbin1/article/details/47781187) 下面開始集群安裝、配置 主機 集群端口 消息端口 管控臺端口 節點安裝目錄 192.168.1.81 62621 51511 8161 ${MQ_HOME}/node-01 192.168.1.82 62622 51512 8162 ${MQ_HOME}/node-02 192.168.1.83 62623 51513 8163 ${MQ_HOME}/node-03 1. 我們使用ZooKeeper和LevelDB搭建ActiveMQ集群,使用ZooKeeper(集群)注冊所有的ActiveMQ Broker。只有其中的一個 Broker 可以提供服務,被視為Master,其他的Broker處于待機狀態,被視為 Slave。如果 Master 因故障而不能提供服務,ZooKeeper會從Slave 中選舉出一個 Broker 充當 Master。 [ZooKeeper集群的安裝、配置](http://my.oschina.net/lbnan/blog/615153) 2. 下載ActiveMq,tar -zxvf 解壓,名為為node-0x 3. 在iptables中開放端口 4. 修改${MQ_HOME}/conf/jetty.xml中的管理端口,如下: <bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <!-- the default port number for the web console --> <property name="host" value="0.0.0.0"/> <property name="port" value="8161"/> </bean> 5. 配置 conf/activemq.xml 中的持久化適配器。修改其中 bind、zkAddress、
hostname 和 zkPath,每個 ActiveMQ 的 BrokerName 必須相同,否則不能加入集群,如下:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="myBroker" dataDirectory="${activemq.data}"> <persistenceAdapter> <!-- kahaDB directory="${activemq.data}/kahadb"/ --> <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:62621" zkAddress="192.168.1.81:2181,192.168.1.82:2182,192.168.1.83:2183" hostname="zk-01" zkPath="/activemq/leveldb-stores"/> </persistenceAdapter> </broker> 6. 配置各節點的消息端口,如下: <transportConnectors> <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:51511?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>
7. 接下來我們使用static Broker-Cluster方式進行負載均衡 還有其他方式,找了一篇不錯的博客[Apache ActiveMQ 負載均衡](http://www.tuicool.com/articles/r6FfY3) 使用以上同樣的方式再部署一個集群,集群名稱為myBroker2,在conf/activemq.xml中配置: <networkConnectors> <networkConnector uri="static:(tcp://192.168.1.101:53531,tcp://192.168.1.102:53532,tcp://192.168.1.103:53533)" duplex="false"/> </networkConnectors> </networkConnectors> 8. 啟動3個MQ并監聽: ${MQ_HOME}/bin/activemq start tail -f ${MQ_HOME}/data/activemq.log
看完了這篇文章,相信你對“ActiveMQ集群負載均衡、安裝、配置的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。