MQ通道配置
MQ通道配置
通道是用來連接兩個(gè)隊(duì)列管理器的;
在單個(gè)隊(duì)列管理器內(nèi)讀寫消息不需要建立通道;但在一個(gè)隊(duì)列管理器中寫入消息,而從另一個(gè)隊(duì)列管理器中的隊(duì)列取出消息,這就需要建立通道;
通道,對(duì)跨機(jī)和本機(jī)的隊(duì)列管理器不做區(qū)分,對(duì)于兩個(gè)隊(duì)列管理器,不論是否分布在同一個(gè)機(jī)器上,配置方式都是一樣的,所不同的就是ip的地址配置;
通道類型
通信雙方的通道類型配對(duì)并不是可以隨意排列組合的,共有六種。(詳見《精通MQ》1.2.4 p24)
Sender/Receiver 是所有連接中最簡單、最常用的一種。Sender 是通道主動(dòng)方,也是
消息發(fā)送方。
Requester/Server 也是常用的一種連接方式。Requester 是通道主動(dòng)方,但通道連接
后,它作為消息接收方,Server 是消息發(fā)送方。
Server/Receiver 與 Sender/Receiver 類似,Server 是消息的發(fā)送方,也是連接的主動(dòng)
方。與 Sender 定義類似,Server 定義中必須指定 CONNAME 參數(shù)。
Sender/Receiver 通道是最常見的通道配置方式, Sender 作為通道的發(fā)送方也是通道連接的主動(dòng)發(fā)起方,Receiver 作為通道的接收方也是通道連接的被動(dòng)監(jiān)聽方。在 Receiver 端要配置并運(yùn)行相應(yīng)的監(jiān)聽器。
配置示例
以下以Sender/Receiver 作為示例:
在以下的配置腳本中,通道連接兩個(gè)隊(duì)列管理器 QM1 和 QM2。其中,QM1為 Sender,
QM2 為 Receiver。在 QM1 上配置了遠(yuǎn)程隊(duì)列 QR 和傳輸隊(duì)列 QX,其中 QR 指向隊(duì)列管理器 QM2 上的本地隊(duì)列 QL,且 QR 與 QX 對(duì)應(yīng),即凡是要放入 QR 隊(duì)列的消息,在加上傳輸消息頭后直接放入 QX 中等待發(fā)送。QM1 上配置 Sender 通道需要指定對(duì)方的通信參數(shù) (IP地址和端口),而這些參數(shù)必須與 QM2 上的監(jiān)聽器設(shè)置對(duì)應(yīng)。Sender 通道與傳輸隊(duì)列 QX 對(duì)應(yīng),表示凡是在 QX 中等待發(fā)送的消息最終都可以由該通道送出。雙方通道必須同名。
在連接通道的時(shí)候,我們只需在 QM1 端啟動(dòng)通道 start channel (C)。
開始干活:
1.建立隊(duì)列管理器
首先,我們在10.6.159.147 建立兩個(gè)隊(duì)列管理器QM1、QM2,然后運(yùn)行起來;
2.建立隊(duì)列和通道
定義qm1的隊(duì)列和通道創(chuàng)建腳本:
創(chuàng)建qm1的隊(duì)列和通道:
/var/mqm/sh$runmqsc QM1 < define_qm1.tst > out查看out文件,確認(rèn)沒有錯(cuò)誤;
定義qm2的隊(duì)列和通道創(chuàng)建腳本:
/var/mqm/sh$vi define_qm2.tst DEFINE QLOCAL (QL) REPLACE DEFINE CHANNEL (C) CHLTYPE (RCVR) TRPTYPE (TCP) REPLACE創(chuàng)建qm2的隊(duì)列和通道:
/var/mqm/sh$runmqsc QM2 < define_qm2.tst > out查看out文件,確認(rèn)沒有錯(cuò)誤;
3.在qm2運(yùn)行監(jiān)聽器
在qm2上運(yùn)行監(jiān)聽器,監(jiān)聽連接和發(fā)報(bào)請求;
(停止監(jiān)聽器的命令:endmqlsr -m QM2)
4.運(yùn)行通道
qm2的監(jiān)聽器不啟動(dòng)時(shí),qm1上運(yùn)行通道是無法啟動(dòng)的,因?yàn)闊o法建立起連接;
或者通過mqsc來運(yùn)行通道:
runmqsc QM1 start channel (C)5.發(fā)送測試報(bào)文
/var/mqm/sh$amqsput QR QM1 hello from qm16.接收測試報(bào)文
/var/mqm/sh$amqsget QL QM2 >hello from qm1一次全部接受回來
7.不同的機(jī)器上
進(jìn)一步,我們再另外一臺(tái)機(jī)器上建立QM3隊(duì)列管理器:
qm1上的隊(duì)列需要修改下ip:
DEFINE QREMOTE (QR) RNAME (QL) RQMNAME (QM3) XMITQ (QX) REPLACE DEFINE QLOCAL (QX) USAGE (XMITQ) REPLACE DEFINE CHANNEL (C) CHLTYPE (SDR) TRPTYPE (TCP) CONNAME ('10.6.159.211 (1416)') XMITQ (QX) REPLACE發(fā)送接收測試類似,沒問題;
over;
Posted by: 大CC | 12DEC,2013
博客:blog.me115.com
微博:新浪微博
轉(zhuǎn)載于:https://www.cnblogs.com/me115/p/3471788.html
總結(jié)
- 上一篇: Python六大开源框架对比:Web2p
- 下一篇: C++实验八