ActiveMQ(七)_偽叢集和主從高可用使用
Web管理控制檯 | 訊息服務介面 | 叢集通訊介面 | |
mq1 | 8161 | 51511 | 61601 |
mq2 | 8162 | 51512 | 61602 |
mq3 | 8163 | 51513 | 61603 |
1 |
< broker xmlns = brokerName = "V1MQ" dataDirectory = "${activemq.data}" >
|
2、配置levelDB,載入<broker>節點內
bind:叢集間通訊的ip和埠
zkAddress:ZooKeeper地址,多個可用,逗號分隔
hostname:主機名,可在/etc/hosts中進行配置
zkPath:zkPath目錄,可在ZooInspetor中進行檢視
1 2 3 4 5 6 7 8 9 10 11 |
< persistenceAdapter >
<!-- kahaDB directory="${activemq.data}/kahadb"/ -->
< replicatedLevelDB
directory = "${activemq.data}/leveldb"
replicas = "3"
zkAddress = "192.168.146.130:2181"
hostname = "V1"
zkPath = "/activemq/leveldb-stores"
/>
</ persistenceAdapter >
|
4、啟動activemq
/usr/local/src/activemq1/bin/activemq start
可通過/usr/local/src/activemq1/data/activemq.log檢視啟動日誌
5、關於管控臺
雖然3個activemq都啟動了,但是同一時間只有Master對應的管控臺可用,Slaver對應的管控臺不可用
四、結合ZooInspector測試(推薦使用dubbokeeper中檢視zookeeper的一個UI外掛,https://github.com/dubboclub/dubbokeeper)
1、開啟ZooInspector(可自行搜尋下載或從群中下載),輸入ZooKeeper地址進行監控,如果3個activemq都啟動成功,則顯示如下:
2、Java測試程式碼
a) 配置叢集IP(這裡3個activemq的埠分別是51511,51512,51513)
1 2 3 4 5 6 7 8 |
<!-- 配置JMS連線工廠 -->
< bean id = "connectionFactory" class = "org.apache.activemq.ActiveMQConnectionFactory" >
<!--解決接收訊息丟擲異常:javax.jms.JMSException: Failed to build body from content. Serializable class not available to broke-->
< property name = "trustAllPackages" value = "true" />
<!-- 是否非同步傳送 -->
< property name = "useAsyncSend" value = "true" />
</ bean >
|
b) 測試程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
@Test
public void produceMsg_DefaultQueue() {
for ( int i = 0 ; i < 10000 ; i++) {
final String msg = "序號:" +String.valueOf(i) + " " + "這裡是向預設佇列傳送的訊息" + new Date().toString();
System.out.println(msg);
String destination = jmsTemplate.getDefaultDestination().toString();
jmsTemplate.send( new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(msg);
}
});
try {
Thread.sleep( 300 );
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
|
3、啟動Java程式併發送訊息
4、關閉Master佇列(注意此時的Master佇列為mq2)
a) 此時的ZooInspetor
5、重啟mq2佇列(重啟後mq2加入佇列成為Slaver,但是mq1還是Master,佇列不受影響)
6、關閉mq1、mq2,僅剩mq3(由於只有一個佇列,無法進行選舉,所以整個佇列都無法提供服務)
7、重啟mq1(重啟mq1後,mq1和mq3選舉了Master佇列,從而重新對外提供服務)
a) ZooInspecto顯示mq1被選舉為Master
b) 程式重新向佇列訊息,資料並沒有中斷
五、總結
本文演示了activemq偽叢集的搭建過程及高可用的測試過程,通過舉一反三可以將activemq部署到不同的機器上,從而實現相同的功能。
遺留問題:ZooInspetor的activemq編號是自動生成的,很難發現其對應的佇列,請問有沒有可以自定義編號的方法,謝謝。
六、參考資料
相關推薦
ActiveMQ(七)_偽叢集和主從高可用使用
一、本文目的 介紹如何在同一臺虛擬機器上搭建高可用的Activemq服務,叢集數量包含3個Activemq,當Activemq可用數>=2時,整個叢集可用。 本文Activemq的叢集數量為3個,分別命名為mq1,mq2,mq3 二、概念介紹 1、偽叢集
activemq-叢集和主從模式 學習筆記
activemq主從模式與叢集 三種masterslave模式 主從方式 要求 效能 共享檔案系統 要求SAN網路共享儲存 JDBC主從方式 共享資料庫 速度不如日誌快 複製的LevelD
Mysql“叢集”和”主從“兩者的區別
之前一直用oracle資料庫,而且只是用,沒有關心過資料庫的架構,現在的專案使用mysql資料庫,而且要自己設計資料儲存架構。所以研究了一下mysql的叢集(cluster)和主從(master/slave)這兩個概念。兩者非常容易混淆,特別是對於菜鳥來講。
Java操作redis叢集和主從
import java.io.IOException; import java.util.HashSet; import java.util.Set; import org.junit.Test; import redis.clients.jedis.HostAndPo
淺談小白如何讀懂Redis快取記憶體與持久化並存及主從高可用叢集
一、簡介Redis是一個基於鍵值(K-V)的快取記憶體軟體,和他具有相同功能的軟體有memcached,但其支援更為複雜的資料結構,例如:List,set,sorted set,同時redis具有永續性功能。redis究竟是什麼?對於不同的應用場合,對redis的理解也不相同
ActiveMQ(六)_多叢集的負載均衡
圖一 圖一說明: 1、叢集一包含3個佇列:Amq1、Amq2、Amq3;叢集二包含2個佇列:Bmq1、Bmq2
Linux下搭建MySQL叢集 / Mysql“叢集”和”主從“兩者的區別
一、MySQL叢集簡介 1、什麼是MySQL叢集 MySQL叢集是一個無共享的(shared-nothing)、分散式節點架構的儲存方案,其目的是提供容錯性和高效能。 資料更新使用讀已提交隔離級別(read-committedisolation)來保證所有節點資料的一致性,使用兩階段提交機制(two-ph
Spark 系列(七)—— 基於 ZooKeeper 搭建 Spark 高可用叢集
一、叢集規劃 這裡搭建一個 3 節點的 Spark 叢集,其中三臺主機上均部署 Worker 服務。同時為了保證高可用,除了在 hadoop001 上部署主 Master 服務外,還在 hadoop002 和 hadoop003 上分別部署備用的 Master 服務,Master 服務由 Zookeeper
【ZooKeeper系列】1.ZooKeeper單機版、偽叢集和叢集環境搭建
ZooKeeper安裝模式主要有3種: 單機版(Standalone模式)模式:僅有一個ZooKeeper服務 偽叢集模式:單機多個ZooKeeper服務 叢集模式:多機多ZooKeeper服務 1 單機版(Standalone模式)安裝 ZooKeeper官網下載地址:http://zookeeper.
keepalived+MHA實現mysql主從高可用集群
keepalived mha mysql主從集群 高可用 本節索引原理分析實驗環境準備主從復制集群安裝MHA包初始化MHA配置Keepalived故障出現故障恢復總結 一 原理分析1 MHA簡介:MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟
Keepalive配置文件說明和實現高可用
keepaliveKeepalive概述: Keepalived是一個免費開源的,用C編寫的,具備第3層、第4層和第7層交換機的功能。主要提供loadbalancing(負載均衡)和 high-availability(高可用)功能,負載均衡實現需要依賴Linux的虛擬服務內核模塊(ipvs),而高可用是通過
memcached實現主主復制和keepalive高可用方式
ali 上進 endif alived 函數 相同 pri face 軟件 實驗拓撲 實驗環境 服務器 IP地址 操作系統 主要軟件 memcached1 192.168.144.122 centos7.3 libevent2.1.8、memcached1.
如何設計和實現高可用的MySQL
歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~ 本文由騰訊雲資料庫 TencentDB發表於雲+社群專欄 王甲坤,騰訊高階工程師、騰訊雲關係型資料庫MySQL負責人,擁有多年客戶端、資料庫研發經驗。在IOS客戶端、MySQL、PostgreSQL、SQL Server等產品有豐富的研
CentOS 7部署Hadoop叢集(HA高可用叢集)
目錄 測試環境 Hadoop 組織框架 HDFS架構 YARN架構 HA叢集部署規劃 自動故障轉移 關於叢集主機時間 Linux環境搭建 配置Java環境 安裝單機版Hadoop Zookeeper叢集安裝 配置環境變數 關閉防火牆 修
如何設計和實現高可用MySQL
歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~ 本文由騰訊雲資料庫 TencentDB發表於雲+社群專欄 王甲坤,騰訊高階工程師、騰訊雲關係型資料庫MySQL負責人,擁有多年客戶端、資料庫研發經驗。在IOS客戶端、MySQL、PostgreSQL、SQL Server等產品有豐富的研
zookeeper叢集、kafka叢集、Hadoop高可用
一、zookeeper叢集 1.1 zookeeper概述 1.1.1 什麼是zookeeper ZooKeeper是一個分散式的協調服務 1.1.2 ZooKeeper能幹什麼 ZooKeeper是用來保
Keepalived+Redis主從高可用部署
機器 A:192.168.252.105 B:192.168.252.106 VIP:192.168.252.101 A|B安裝 keepalived-1.3.5.tar.gz tar -zxvf keepalived-1.3.5.tar.gz cd keepalived-1.
Hadoop部署(六)——CentOS 7部署Hadoop叢集(HA高可用叢集)
目錄 測試環境 關閉防火牆 測試環境 Linux系統版本:CentOS 7 64位 Hadoop 組織框架 Hadoop主要包括兩部分: 一部分是HDFS(Hadoop Distr
Redis從入門到熟練使用之測試哨兵及主從高可用(詳解,第四篇,共五篇)
測試驗證 首先檢視哨兵監控情況 然後嘗試關閉主機 再檢視剩餘2個從機,這裡會自動選舉產生新的主機 然後,我們再次將剛才停止的主機啟動起來,發現啟動後其自動成為從機 停掉master_redis主資料庫後重啟後變成從資料庫。隨機推選。 至此,
Redis叢集(哨兵模式高可用)
##一臺機器<br>ps -ef | grep redisroot 610201002:14 ? 00:00:01 redis-server 127.0.0.1:7000 [cluster] root 610241002:14 ? 00:00:01 redis-server 127.0.