1. 程式人生 > >ActiveMQ(六)_多叢集的負載均衡

ActiveMQ(六)_多叢集的負載均衡

                                                                 圖一
    圖一說明:    1、叢集一包含3個佇列:Amq1、Amq2、Amq3;叢集二包含2個佇列:Bmq1、Bmq2    2、生產者一生產的訊息可以同時傳送到群集1、叢集2,生產者二也一樣    3、消費者一可以同時從叢集1、叢集2消費訊息,消費者二也一樣    4、某一個叢集掛了,生產者和消費者可以不間斷使用其它叢集傳送,消費訊息 一、本文目的         本介紹多個叢集的搭建和使用,並通過負載均衡方式(即水平分流,生產訊息A,發向叢集1後,不再向叢集2傳送,即叢集1與叢集2之間的訊息是不同的)
使用同一生產者往多個叢集傳送訊息或使用同一消費者從多個叢集消費訊息。 二、概念說明          1、多個叢集                 圖一中,叢集1包含三個activemq,叢集2包含2個activemq,兩個叢集間資料可以共用           2、負載均衡                 圖一中,生產者1傳送的訊息可根據叢集的負載分別傳送到叢集1或叢集2,當其中一個叢集掛掉時,生產者1仍然會向叢集2傳送訊息                 圖一中,消費者1,消費者2都可以從叢集1,叢集2中消費訊息,當其中一個叢集掛掉時,消費者仍然能從另外一個叢集訊息訊息           3、叢集間的通訊:使用networkConnector配置
三、Activemq叢集的搭建             注意:叢集1和叢集2中broker的name不能一樣,zkPath不能一樣       2、本文中主要搭建2個叢集,叢集1包含3個activemq、叢集2包含2個activemq
IP:192.168.146.129
叢集A 控制檯 服務介面 叢集通訊介面
Amq1 8161 51511 61601
Amq2 8162 51512 61602
Amq3 8163 51513 61603
四、Activemq叢集之間通訊      Activemq叢集搭建有多個方法,本文主要是通過配置networkConnectors實現,該配置放在<broker>節點下,原理為叢集1配置連線叢集2的所有activemq,反之亦然。配置如下:

     1、叢集1的每個activemq配置如下:(叢集1的url包含叢集2所有的佇列資訊,埠為佇列的服務埠)

<networkConnectors>

  <networkConnector uri="static:(tcp://192.168.146.130:51511,tcp://192.168.1.101:51512)"/>

</networkConnectors>

     2、叢集2的每個activemq配置如下:(叢集2的url包含叢集1所有的佇列資訊,埠為佇列的服務埠)

<networkConnectors> <networkConnector uri="static:(tcp://192.168.146.129:51511,tcp://192.168.146.129:51512,tcp://192.168.146.129:51513)"/>

</networkConnectors>

五、訊息生產者向多個叢集傳送訊息

本例使用的是點對點訊息佇列的demo,使用方法請參考:

需要注意的幾點: 1、各個叢集只有Master節點的控制檯才能使用 2、ActiveMQConnectionFactory的brokerURL必須包含所有叢集佇列節點的url,包括叢集1和叢集2,之前以為只需要包含某一個叢集的ur,搞了半天發現沒效果

測試叢集的高可用性:

1、叢集1和叢集2都註冊到了ZooKeeper,都有各自的Master節點

2、兩個叢集中都只有Master節點的管控臺才可用(下圖為叢集中Master佇列收到的訊息)

3、訊息隨機送到不同叢集的Master佇列中

4、手動停止叢集2的Master佇列,生產者卡頓了一下後繼續往叢集1傳送訊息,中間的訊息並沒有中斷

5、重新啟動叢集2的Master佇列後,生產者又重新向叢集2的Master佇列傳送訊息

六、消費者從多個叢集消費訊息

1、只有1個消費者時,隨機從兩個叢集中消費訊息

2、啟動兩個不同的消費者,他們都同時從叢集1、叢集2的消費訊息。停止其中一個消費者後不影響另外一個消費者

3、關閉叢集2的一個佇列後(叢集2只有兩個佇列,關閉其中1個後,整個叢集都失效了),兩個消費者都只從叢集1消費訊息

七、總結       上文中主要介紹了單個Activemq叢集的高可用,一般應用已經足夠。本文更進一步,作為高效能和擴充套件性的應用,通過多個叢集的方式擴充套件佇列,使得訊息可以同時傳送到多個佇列,也可以通過多個消費者消費同一佇列的訊息。

相關推薦

ActiveMQ()_叢集負載均衡

                                                                 圖一    圖一說明:    1、叢集一包含3個佇列:Amq1、Amq2、Amq3;叢集二包含2個佇列:Bmq1、Bmq2    

十二、負載均衡集群介紹、LVS介紹、LVS的調度算法、LVS NAT模式搭建

負載均衡集群介紹 LVS介紹 LVS的調度算法 LVS NAT模式搭建 六十二、負載均衡集群介紹、LVS介紹、LVS的調度算法、LVS NAT模式搭建一、負載均衡集群介紹 主流開源軟件LVS、keepalived、haproxy、nginx等 其中LVS屬於4層(網絡OSI 7層模型),ngi

AWS考證方向:、實現WEB負載均衡

god col ssh key .org c2c tps 系統類型 acf 分鐘 AWS上實現WEB負載均衡 1、創建實例 2、選擇系統類型和版本 3、選擇實例的類型規格,選擇完點擊下一步 4、配置實例的詳細信息,實現負載均衡要兩臺主機及以上 5、添加存儲,一般每臺主機的根

Nginx域名負載均衡配置

display rip con reload info psc hash 環境 ref Nginx負載均衡設置環境:負載均衡:192.168.188.128:80Web1:192.168.188.128:81Web2:192.168.188.129:80正式環境中,需要解析

伺服器叢集負載均衡(F5,LVS,DNS,CDN)區別以及選型

http://www.taocms.org/922.html 下面是“黑夜路人”的《大型網站架構優化(PHP)與相關開源軟體使用建議》 ======================================= F5全稱: F5-BIG-IP-GTM 全球流量管理器. 是

伺服器叢集負載均衡(F5、Array、Nginx、LVS、HAProxy)區別以及選型

PS:Nginx/LVS/HAProxy是目前使用最廣泛的三種負載均衡軟體,本人都在多個專案中實施過,參考了一些資料,結合自己的一些使用經驗,總結一下。 一般對負載均衡的使用是隨著網站規模的提升根據不同的階段來使用不同的技術。具體的應用需求還得具體分析,如果是中小型的Web應用,比如日P

haproxy實現mysql叢集負載均衡

開始使用 Ubuntu 下載安裝 apt-get install haproxy 配置 global log /dev/log local0 log /dev/log local1 notice chr

nignx實現負載均衡例項

首先配置要去nignx.conf的配置裡去配置多埠實現 在http模組裡面寫上如下配置: upstream是nignx分配方式,當前預設是輪詢 1.輪詢:輪詢是upstream的預設分配方式,即每個請求按照時間順序輪流分配到不同的後端伺服器,如果某個後端伺服器down掉後,能自動剔除

Redis快取叢集叢集負載均衡方案設計

快取模組設計 採用分散式快取: 說明: (1)Web伺服器端只負責呼叫介面獲取/更新資料,不必關心業務資料處理; (2)介面負責具體的資料處理,包括快取資料的寫入/更新; (3)快取叢集用於快取伺服器宕機後,資料仍然高可用。 快取寫入規則

SQL SERVER 2016 AlwaysOn 無域叢集+負載均衡搭建與簡測

  之前和很多群友聊天發現對2016的無域和負載均衡滿心期待,畢竟可以簡單搭建而且可以不適用第三方負載均衡器,SQL自己可以負載了。windows2016已經可以下載使用了,那麼這回終於可以揭開令人憧憬嚮往的AlwaysOn2016 負載均衡叢集的神祕面紗了。   本篇主要描述個人叢集搭建中遇到的坑和一些注

windows下通過nginx實現tomcat叢集負載均衡(入門)

一、目標 Windows下,下載安裝nginx Nginx常用命令 Nginx負載均衡兩個tomcat Nginx配置多個負載均衡服務 二、下載安裝nginx 下載地址http://nginx.org/en/download.html 版本nginx-1.

windows系統下實現nlb叢集負載均衡

滑鼠點選 “Edit (編輯) ” ,進入 “Add/Edit  Port  Rule (新增 / 編輯埠規則) ” 介面,對預設規則進行修 改設定。 Cluster IP address (群集 IP 地址) ” :此設定項是用來指定達到哪個群集 IP 的接受處理方式將按照以 下設定進行。因我們沒有在

Windows下Nginx+tomcat配置叢集負載均衡

Nginx 介紹      Nginx (發音同 engine x)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。  其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同類

圖文解說:Nginx+tomcat配置叢集負載均衡

    開發的應用採用F5負載均衡交換機,F5將請求轉發給5臺hp unix伺服器,每臺伺服器有多個webserver例項,對外提供web服務和socket等介面服務。之初,曾有個小小的疑問為何不採用開源的apache、Nginx軟體負載,F5裝置動輒幾十萬,價格昂貴?自己一個比較幼稚的問題,後續明白

使用 Nginx + Tomcat 搭建叢集負載均衡

負載均衡 建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性。 負載均衡,英文名稱為Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和

【整理】Nginx+Tomcat+Memcached實現伺服器叢集負載均衡

一. 準備工作1.1 建立使用者及工作目root使用者登入後執行 useradd csdn    -------建立使用者csdnpasswd  csdn    -------給已建立的使用者csdn設定密碼說明:新建立的使用者會在/home下建立一個使用者目錄csdn

ActiveMQ(七)_叢集和主從高可用使用

一、本文目的         介紹如何在同一臺虛擬機器上搭建高可用的Activemq服務,叢集數量包含3個Activemq,當Activemq可用數>=2時,整個叢集可用。         本文Activemq的叢集數量為3個,分別命名為mq1,mq2,mq3 二、概念介紹 1、偽叢集

(hadoop運維 三) hadoop叢集負載均衡

當hadoop叢集中增加節點、刪除節點或者某個節點磁碟佔用率比較高的情況下,節點之間的儲存就會不均衡,此時就需要對叢集進行重新的負載均衡,在做負載均衡之前,首先要調整dfs.balance.bandwidthPerSec引數,該引數表示叢集負載均衡的頻寬,我的CDH叢集中預

伺服器叢集負載均衡技術

負載均衡 (Load Balancing) 負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性。 CDN負載均衡(Load Balance)[1]由於現有網路的各個核心部分

Ribbon快速實現應用負載均衡

此前開發的專案,是通過Nginx 做負載均衡;現在spring-boot專案集成了web 伺服器,並且應用(微服務消費方)直接整合Ribbon,這樣就可以不用通過代理伺服器,可以選擇性的進行負載均衡。下面介紹一個簡單的實現負載的案例:1、新建一個spring-boot專案,搭