摘要:前言集群分為兩種方式偽集群集群節點都搭在一臺機器上真集群集群節點分布在多臺機器上更多詳細真集群與偽集群的區別該教程使用的是偽集群,由于在一個主機上實現集群,這里直接使用了模式共享文件系統。該教程是使用個服務實現集群。
前言
集群分為兩種方式:
1.偽集群:集群節點都搭在一臺機器上
2.真集群:集群節點分布在多臺機器上
更多詳細:真集群與偽集群的區別
該教程使用的是偽集群,由于在一個主機上實現ActiveMQ集群,這里直接使用了Shared File System Master Slave模式(共享文件系統)。沒有結合ZooKeeper。
該教程是使用3個ActiveMQ服務實現集群。理論知識請參考我前一篇文章:ActiveMQ集群整體認識第三部分Master Slave和Broker Cluster結合使用
一、配置3個ActiveMQ服務--- | 服務端口 | jetty管理端口 | 存儲位置 | 網絡連接器 | 用途 |
---|---|---|---|---|---|
Node-A | 61616 | 8161 | --- | Node-B、Node-C | 只能作為消費者 |
Node-B | 61617 | 8162 | /opt/activemq/kahadb | Node-A | 生產者、消費者 |
Node-C | 61618 | 8163 | /opt/activemq/kahadb | Node-A | 生產者、消費者 |
安裝和啟動一個ActiveMQ服務可以參考之前的文章:ActiveMQ安裝
$ wget https://archive.apache.org/dist/activemq/5.14.4/apache-activemq-5.14.4-bin.tar.gz # 下載 $ tar -zxvf apache-activemq-5.14.4-bin.tar.gz # 解壓2. 使用3個ActiveMQ服務
2.1 復制3個ActiveMQ軟件
在 activemq文件夾下復制3個ActiveMQ,分別命名為 activemq-a、activemq-b、acativemq-c,后面稱之為A、B、C服務:
$ mkdir activemq $ cp -rf apache-activemq-5.14.4 activemq/activemq-a # 創建activemq-a服務 $ cp -rf apache-activemq-5.14.4 activemq/activemq-b # 創建activemq-b服務 $ cp -rf apache-activemq-5.14.4 activemq/activemq-c # 創建activemq-c服務 $ mkdir activemq/kahadb # 創建之后給B和C服務共享的數據存儲文件夾
2.2 配置 activemq-a 服務:
分別修改 A、B、C服務下 /conf/activemq.xml 文件配置,配置網絡連接器(由于知道具體的三臺服務器,所以這里使用靜態連接器)
配置activemq-a的activemq.xml文件,添加連接B和C服務的網絡連接器:
在
關于activemq支持的協議可以參考:activeMQ支持的五種協議
配置jetty管理端口為8161
修改config/jetty.xml文件,找到 id="jettyPort" 的標簽:
2.3 配置 activemq-b 服務
配置連接A服務的網絡連接器
/conf/activemq.xml 文件:
配置數據存儲位置(B和C服務共享的同一個)
/conf/activemq.xml 文件:
配置jetty管理端口8162
/conf/jetty.xml 文件
2.4 配置 activemq-c 服務
配置連接A服務的網絡連接器
/conf/activemq.xml 文件:
配置數據存儲位置(B和C服務共享的同一個)
/conf/activemq.xml 文件:
配置jetty管理端口8163
/conf/jetty.xml 文件
二、依次啟動A、B、C三個節點
$ /opt/activemq/activemq-a/bin/activemq start # 啟動A服務 $ /opt/activemq/activemq-b/bin/activemq start # 啟動B服務 $ /opt/activemq/activemq-c/bin/activemq start # 啟動C服務 $ ps -ef|grep activemq # 檢查進程是否允許,即activemq是否啟動成功 #其中B和C服務只會有一個端口對外提供服務,因為它們是Master Slaver主從配置,只有一個能成為Master,獲得共享資源的使用權。 $ netstat -anp|grep 61616 # 查看端口61616 $ netstat -anp|grep 61617 # 查看端口61617 $ netstat -anp|grep 61618 # 查看端口61618 $ /opt/activemq/activemq-b/bin/activemq stop # 停止B節點服務(模擬B服務崩潰宕機).這時C服務就會自動變為Master,開始對外提供服務三、代碼編寫
在此以對列模式為例,隊列模式實現方式請參考我之前的文章:ActiveMQ的消息模式——隊列模式(Queue)。
在此基礎上,做如下修改:
生產者 AppProducer.java
//使用B節點和C節點來實現高可用性,保證其中一個節點宕機,另一個節點可以馬上提供服務。 //這里不能配置A節點,因為A節點只能作為消費者 private static final String url = "failover:(tcp://192.168.31.10:61617,tcp://192.168.31.10:61618)?randomize=true";
消費者 AppConsumer.java
//A、B、C節點都可以作為消費者 private static final String url = "failover:(tcp://192.168.31.10:61616,tcp://192.168.31.10:61617,tcp://192.168.31.10:61618)?randomize=true";
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69212.html
摘要:二集群部署方式集群的部署方式主要有下面種模式實現負載均衡,多個之間同步消息,已達到服務器負載的可能。默認為,單位為毫秒,表示一次嘗試重連之間等待的時間。如果宕機,集群退化成標準集群,只是了失去負載均衡能力。 前言 最終需要掌握 Replicated LevelDB Store部署方式,這種部署方式是基于ZooKeeper的。 集群分為兩種方式:1.偽集群:集群節點都搭在一臺機器上2....
摘要:要想保證負載均衡得再結合部署方案,配置網絡連接器。編碼時,端消費者通過協議來連接集群。一服務器配置集群集群保證本身的高可用性。只需使用進行配置即可,默認端口為。 前言 本案例使用的是真集群方式,準備三臺主機,IP分別為192.168.100.142、192.168.100.143、192.168.100.144 偽集群部署請看:ActiveMQ+ZooKeeper 偽集群整合如果需要了...
摘要:時間年月日星期六說明本文部分內容均來自慕課網。這個時候,可以啟動多臺積分系統,來同時消費這個消息中間件里面的登錄消息,達到橫向擴展的作用。 時間:2017年07月22日星期六說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學源碼:無學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程安排 Java...
摘要:前言本案例使用的是偽集群方式,即在一臺主機上部署個服務端口不同個服務端口不同。要想保證負載均衡得再結合部署方案,配置網絡連接器。編碼時,端消費者通過協議來連接集群。只需使用進行配置即可,默認端口為。 前言 本案例使用的是偽集群方式,即在一臺主機上部署3個activemq服務(端口不同)+3個zookeeper服務(端口不同)。 真集群部署請看:ActiveMQ+ZooKeeper集群整...
摘要:熱門框架學習目錄項目介紹專輯欄目一簡介環境安裝配置客戶端連接常用命令集群搭建分布式鎖二簡介環境安裝配置基本特性啟動過程分析選舉過程主從數據同步過程分析集群搭建分布式鎖三簡介環境安裝配置基本特性基本概念和模型收發消息案例架構初識收發消息原 HotFrameLearning 熱門框架學習(目錄) - I、項目介紹 - II、專輯欄目 一、Redis Redis 簡介 Redis 環境安裝...
閱讀 3073·2021-11-24 10:34
閱讀 3330·2021-11-22 13:53
閱讀 2636·2021-11-22 12:03
閱讀 3603·2021-09-26 09:47
閱讀 3013·2021-09-23 11:21
閱讀 4802·2021-09-22 15:08
閱讀 3297·2021-07-23 10:59
閱讀 1262·2019-08-29 18:31