MQ佇列管理器搭建(三)

2022-08-21 04:39:12 字數 2981 閱讀 2858

描述:如上圖所示,為mq的集群搭建部署圖。clustera、clusterb分別是兩個集群,其中qm1-qm3、gatewaya為clustera集群中的佇列管理器;qm1-qm3、gatewayb是clusterb集群中的佇列管理器。gatewaya與gatewayb負責網路路由和訊息分發,使用集群的方式可以達到負載均衡的目的,除此之外還能提高mq使用的穩定性。同乙個集群中除閘道器佇列管理器外的任意佇列管理器因故關閉或停止工作後,其他的佇列管理器可以接管它的工作從而保證業務應用的正常執行。

使用場景:

集群及閘道器佇列管理器的搭建:(左邊的未a機器、右邊的為b機器)

qm1、qm2、qm3、gatewaya、gatewayb為佇列管理。

queue為本地佇列,分別在a中的qm1、qm2、qm3和b中的qm1、qm2、qm3建立。

transqueue為傳輸佇列,分別在gatewaya和gatewayb中建立。

chan_gatewaya_to_gatewayb、chan_gatewayb_to_gatewaya為傳送、接收通道,在gatewaya中建立。

chan_gatewayb_to_gatewaya、chan_gatewaya_to_gatewayb為傳送、接收通道,在gatewayb中建立。

any.to.clusterb為遠端佇列,在gatewaya中建立。

any.to.clustera為遠端佇列,在gatewayb中建立。

remotequeue為遠端佇列,分別在gatewaya、gatewayb中建立。

clustera、clusterb分別為a、b機器的mq集群名稱。

qedad分別在a、b機器的所有佇列管理器中建立。

1.分別在a、b機器上建立佇列管理器qm1、qm2、qm3。

--參見《第三章 mq佇列管理器搭建之(二)》

2.建立閘道器佇列管理器gatewaya、gatewayb。

--閘道器佇列管理器的建立與qm1-qm3方式相同,不同的是閘道器佇列管理器中需要建立乙個特殊的遠端佇列,此外其他的遠端佇列指向的目標佇列管理器名稱為目標閘道器佇列管理器中的遠端佇列名。

gatewaya中

--define qremote('remotequeue') rname('queue') rqmname('any.to.clusterb') xmitq('transqueue')

--define qremote(any.to.clustera) rname('') rqmname('')

gatewayb中

--define qremote('remotequeue') rname('queue') rqmname('any.to.clustera') xmitq('transqueue')

--define qremote(any.to.clusterb) rname('') rqmname('')

3建立queue、remotequeuechan_gatewaya_to_gatewayb、chan_gatewayb_to_gatewaya及監聽埠。

--參見《第三章 mq佇列管理器搭建之(二)》

4.建立本地佇列queue,建立中需要指定集群名稱。

a機器的qm1-qm3

--define qlocal ('queue')  cluster(clustera)  defpsist (yes) maxdepth(100) replace

b機器的qm1-qm3

--define qlocal ('queue')  cluster(clusterb)  defpsist (yes) maxdepth(100) replace

5.定義完全儲存倉庫(qm1與qm3為完全儲存倉庫、閘道器佇列管理器和qm2為部分儲存倉庫)

--runmqsc qm1

--alter qmgr repos(clustera)

--runmqsc qm3

--alter qmgr repos(clustera)

6.定義集**送信道與集群接收通道

a:gatewaya:

--define channel(to.gatewaya) chltype(clusrcvr) trptype(tcp) conname('192.168.x.x(1414)') cluster (clustera)

--define channel(to.qm1) chltype(clussdr)  trptype(tcp) conname('192.168.x.x(2414)') cluster (clustera)

qm1:

--define channel(to.qm1) chltype(clusrcvr) trptype(tcp) conname('192.168.x.x(2414)') cluster (clustera)

--define channel(to.qm3) chltype(clussdr)  trptype(tcp) conname('192.168.x.x(4414)') cluster (clustera)

qm2:

--define channel(to.qm2) chltype(clusrcvr) trptype(tcp) conname('192.168.x.x(3414)') cluster (clustera)

--define channel(to.qm1) chltype(clussdr)  trptype(tcp) conname('192.168.x.x(2414)') cluster (clustera)

qm3:

--define channel(to.qm3) chltype(clusrcvr) trptype(tcp) conname('192.168.x.x(4414)') cluster (clustera)

--define channel(to.qm1) chltype(clussdr)  trptype(tcp) conname('192.168.x.x(2414)') cluster (clustera)

b:參見a類似

MB 集群與遠端佇列管理器管理

一 概述 0.對於輸入 本地 輸出 集群共享 直連的方法,可以實現本地輸入,mb過濾後輸出 1.對於輸入 本地 路由 mb過濾 輸出 集群共享 的方法,無法實現mb過濾。二 實驗1 0.輸入 本地 輸出 集群共享 直連 1.在輸入佇列中輸入訊息 2.遠端佇列管理器中得到此 後的訊息 三 實驗2 0....

IBM MQ兩個佇列管理器之間的通訊

1.確保兩邊的佇列管理器的名稱不能相同 如果名稱相同將無法通訊,在連線的時候雖然傳送通道和接收通道都是可以執行的,但是當放入測試訊息的時候會報2087 amq4048的錯誤 2.確保兩個佇列管理器直接的監聽埠正在執行並且是對外開放的,可以通過telnet ip port進行測試。佇列管理器a ib9...

實驗三 Make工程管理器

實驗目的 1 了解嵌入式linux程式設計環境 2 掌握make工程管理方法 3 掌握makefile檔案編寫和使用方法。實驗內容 1 將乙個大檔案拆分成多個小檔案 2 編寫makefile檔案完成多檔案編譯。實驗任務 1 編寫計算器程式 calc 源程式,共9個檔案,檔案關係如下表所示 檔名包含檔...