1. 程式人生 > >ActiveMQ高可用+負載均衡叢集

ActiveMQ高可用+負載均衡叢集

一,高可用叢集

從ActiveMQ5.9開始,ActiveMQ的叢集實現方式取消了傳統的Master-Slave方式,增加了基於ZooKeeper+LevelDB的Master-Slave實現方式,其他兩種方式目錄共享和資料庫共享方式依然存在

(1)檔案共享(KahaDB)
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>

</persistenceAdapter>

 ( 2 )資料庫共享
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/smq?relaxAutoCommit=true"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
    <property name="maxActive" value="20"/>
    <property name="poolPreparedStatements" value="true"/>
</bean>
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.data}" 
dataSource="#mysql-ds" createTablesOnStartup="false"/>

</persistenceAdapter>

 ( 3 )可複製的LevelDB
   LevelDB是Google開發的用於持久化資料的高效能類庫,LevelDB並不是一種服務,需要使用者自己實現,能處理十億級別規模的Key-Value型資料,佔用記憶體小.
<persistenceAdapter>
<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="edu-zk-01"
 zkPath="/activemq1/leveldb-stores" 
/>
</persistenceAdapter>


--SSDB(基於LevelDB)


高可用的原理:使用ZooKeeper(叢集)註冊所有的ActiveMQ Broker.只有其中的一個Broker可以提供服務,被視為Master,其他的Broker處於待機狀態,被視為Slave.如果Master因故障不能提供服務,ZooKeeper會從Slave中選舉出一個Broker充當Master


ActiveMQ叢集部署規劃
ZooKeeper叢集環境:192.168.1.81:2181,192.168.1.82:2182,192.168.1.83:2183
ActiveMQ需要劃分的埠:
     mq叢集通訊埠(bind="tcp://0.0.0.0:62621" ActiveMQ相互之間通許,資料同步...)
      mq叢集訊息埠(conf/activeMq.xml 客戶端監聽埠)
    mq管理控制檯監聽埠(conf/jetty.xml)


一個高可用叢集中每個ActiveMQ的BrokerName必須相同,否則不能加入叢集
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="DobboEdu" dataDirectory="${activemq.data}">


客戶端broker採用失敗重連機制
mq.brokerURL=failover\:(tcp\://192.168.1.81\:51611,tcp\://192.168.1.82\:51611,tcp\://192.168.1.83\:51611)?randomize\=false&initialReconnectDelay\=1000&maxReconnectDelay\=30000


當一個ActiveMQ節點掛掉,ActiveMQ服務一樣正常使用,如果僅剩一個ActiveMQ節點,因為不能選舉Master,ActiveMQ不能正常運轉;如貴ZooKeeper叢集出了問題,需要對ActiveMQ重新啟動一次.


replicatedLevelDB不支援延遲或者計劃任務訊息.這些訊息儲存在另外的LevelDB檔案中,如果使用延遲或者計劃任務訊息,將不會複製到slave Broker上,不能實現訊息的高可用.


二,負載均衡叢集
   1.叢集一連結叢集二
   叢集一中所有ActiveMQ配置如下:加在persistenceAdapter介面卡節點前,networkConnector uri 為叢集二的訊息埠,這裡採用失敗重連機制
<networkConnectors>
<networkConnector uri="static:{tcp://192.168.1.101:53531,tcp://192.168.1.101:53532,tcp://192.168.1.101:t3533}" duplex="false"/>
</networkConnectors>
   2.叢集二連結叢集一
   叢集二中所有ActiveMQ配置如下:加在persistenceAdapter介面卡節點前,networkConnector uri 為叢集一的訊息埠,這裡採用失敗重連機制
<networkConnectors>
<networkConnector uri="static:{tcp://192.168.1.101:53511,tcp://192.168.1.101:53512,tcp://192.168.1.101:t3513}" duplex="false"/>
</networkConnectors>

相關推薦

ActiveMQ可用+負載均衡叢集

一,高可用叢集 從ActiveMQ5.9開始,ActiveMQ的叢集實現方式取消了傳統的Master-Slave方式,增加了基於ZooKeeper+LevelDB的Master-Slave實現方式,其他兩種方式目錄共享和資料庫共享方式依然存在 (1)檔案共享(KahaD

JMS之——ActiveMQ可用+負載均衡叢集

一、高可用叢集 從ActiveMQ5.9開始,ActiveMQ的叢集實現方式取消了傳統的Master-Slave方式,增加了基於ZooKeeper+LevelDB的Master-Slave實現方式,其他兩種方式目錄共享和資料庫共享方式依然存在. 1、檔案共享(KahaDB

keepalived+haproxy 可用負載均衡叢集

案例 chkconfig NetworkManager off chkconfig iptables off cat /etc/sysconfig/selinux #例行公事四臺都要這樣selinux為disabled狀態。 #web為配置好的狀態 只有一個頁面。

MySQL可用負載均衡叢集部署

簡介 使用MySQL時隨著時間的增長,使用者量以及資料量的逐漸增加,訪問量更是劇增,最終將會使MySQL達到某個瓶頸,那麼MySQL的效能將會大大降低。這一結果也不利於軟體的推廣。   那麼如何跨過這個瓶頸,提高MySQL的併發量呢?方法有很多,分散式資料庫、讀寫分離

LVS+Keepalived 實現可用負載均衡叢集

LVS+Keepalived  實現高可用負載均衡叢集     隨著網站業務量的增長,網站的伺服器壓力越來越大?需要負載均衡方案!商業的硬體如 F5 ,Array又太貴,你們又是創業型互聯公司如何有效節約成本,節省不必要的浪費?同時還需要實現商業硬體一樣的高效能高可

可用負載均衡叢集之 HAProxy 部署

一、HAProxy 簡介     1、HAProxy 是開源、免費、快速並且可靠的一種解決方案,他可以執行在大部分主流的 Linux 伺服器上。     2、HAProxy 適用於負載那些特大的 WEB 站點,而這些站點通常又需要會話保持或者

Keepalived + LVS + LAMP 可用負載均衡叢集實現

一、Keepalived 簡介           Keepalived 是一個用 C 語言編寫的路由軟體。它最初是專門為 LVS 負載均衡軟體設計的,用來管理並監控 LVS 集群系統中各個服務節點的狀態,後來又加

階段總結——用虛擬機器搭建一個可用負載均衡叢集架構

搭建一個高可用負載均衡叢集架構出來,並執行三個站點,具體需求如下。 ------------------------------------------------------------------------------------------ 基礎: 1 設計你認為合理的架構,用visio把架構圖

搭建簡單的可用負載均衡叢集

一、搭建DR模式的lvs叢集 環境:DS:192.168.4.53 VIP:192.168.4.100 RS:192.168.4.51 192.168.4.52 1、建立三臺實驗機器,配置好ip和yum倉庫 2、在DR上配置VIP [[email protected] ~]#c

docker下用keepalived+Haproxy實現可用負載均衡叢集

先記錄下遇到的坑,避免之後忘了; 花時間最多去解決的一個題是:在docker下啟動haproxy服務後在這個docker服務內安裝keepalived無法ping通的問題,雖然最後也是莫名其妙就好了,但是加強了不少對docker的理解和還需深入學習的地方。 為什麼要用

Saltstack自動化運維工具(一鍵部署可用負載均衡叢集

在上篇部落格中我們利用salt推送了一臺主機上的haproxy為了實現高可用和負載均衡,我們再使用一臺虛擬機器server4搭建叢集 server1和server4組成高可用和負載均衡叢集 在server4 做好底層配置: 在server4上安裝minion,更改配置檔

saltstack實現一鍵部署keepalived+haproxy的可用負載均衡叢集

配置環境 主機名 ip 服務 server1 172.25.1.1 salt-master、salt-minion haproxy、keepalived server2 172.25.1.2 salt-minion

利用saltstack一鍵部署可用負載均衡叢集

實驗環境: Server1 172.25.254.1 maseter/minion keepalived/haproxy Server2 172.25.254.2 minion httpd Server3 172.25.254.3 minion

LVS+Keepalived搭建MyCAT可用負載均衡叢集

LVS+Keepalived 介紹 LVS LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR),十種

搭建LVS-DR負載均衡叢集、Keepalived-LVS可用負載均衡叢集

LVS DR模式搭建準備工作三臺機器, 三臺機器均有公網IP。排程器(director)IP:192.168.8.133real server1(real1)IP:192.168.8.134real server2(real2)IP:192.168.8.135VIP:192.

Linux:RHCS可用負載均衡叢集(ricci、luci、fence)

一·RHCS 1.RHCS是什麼 RHCS是Red Hat Cluster Suite的縮寫,也就是紅帽子叢集套件,RHCS是一個能夠提供高可用性、高可靠性、負載均衡、儲存共享且經濟廉價的叢集工具集合,它將集群系統中三大叢集架構融合一體,可以給web應

SaltStack一鍵自動化部署可用負載均衡叢集

本節內容涉及的saltstack配置以及各服務的安裝包和配置檔案均打包上傳到了百度雲,可自由下載使用 實驗環境(rhel6.5 x86_64bit virtual machine) 172.25.5.91 salt-master rhel65-lockey1

ActiveMQ可用+負載均衡+測試

1.為了讓各位更加深入瞭解,我們再重複搭建一個ActiveMQ偽叢集,過程和真實情況下的三個獨立ip的叢集搭建方式一模一樣,如下: ActiveMQ 高可用叢集安裝、配置(偽叢集) (ZooKeeper +LevelDB) 1、ActiveMQ 叢集部

RabbitMQ(四):使用Docker構建RabbitMQ可用負載均衡叢集

本文使用Docker搭建RabbitMQ叢集,然後使用HAProxy做負載均衡,最後使用KeepAlived實現叢集高可用,從而搭建起來一個完成了RabbitMQ高可用負載均衡叢集。受限於自身條件,本文使用VMware虛擬機器的克隆功能克隆了兩臺伺服器進行操作,僅作為一個demo,開發中可根據實際情況進行調整

MySQL-Cluster三機叢集+HA可用+負載均衡配置手冊

本文中的配置已經在實驗室進行過效能測試、可靠性測試驗證。 一、介紹 這篇文件旨在介紹如何安裝配置基於3臺伺服器的MySQL叢集。並且實現任意一臺伺服器出現問題或宕機時MySQL叢集依然能夠繼續執行。 1. MySQL-Cluster簡介 MySQL-Cluster主要有三種