转自:http://www.cnblogs.com/me115/p/3471788.html

MQ通道配置

通道是用来连接两个队列管理器的; 
在单个队列管理器内读写消息不需要建立通道;但在一个队列管理器中写入消息,而从另一个队列管理器中的队列取出消息,这就需要建立通道; 
通道,对跨机和本机的队列管理器不做区分,对于两个队列管理器,不论是否分布在同一个机器上,配置方式都是一样的,所不同的就是ip的地址配置;

通道类型

通信双方的通道类型配对并不是可以随意排列组合的,共有六种。(详见《精通MQ》1.2.4 p24) 
Sender/Receiver 是所有连接中最简单、最常用的一种。Sender 是通道主动方,也是 
消息发送方。 
Requester/Server 也是常用的一种连接方式。Requester 是通道主动方,但通道连接 
后,它作为消息接收方,Server 是消息发送方。 
Server/Receiver 与 Sender/Receiver 类似,Server 是消息的发送方,也是连接的主动 
方。与 Sender 定义类似,Server 定义中必须指定 CONNAME 参数。

Sender/Receiver 通道是最常见的通道配置方式, Sender 作为通道的发送方也是通道连接的主动发起方,Receiver 作为通道的接收方也是通道连接的被动监听方。在 Receiver 端要配置并运行相应的监听器。

配置示例

以下以Sender/Receiver 作为示例: 
在以下的配置脚本中,通道连接两个队列管理器 QM1 和 QM2。其中,QM1为 Sender, 
QM2 为 Receiver。在 QM1 上配置了远程队列 QR 和传输队列 QX,其中 QR 指向队列管理器 QM2 上的本地队列 QL,且 QR 与 QX 对应,即凡是要放入 QR 队列的消息,在加上传输消息头后直接放入 QX 中等待发送。QM1 上配置 Sender 通道需要指定对方的通信参数 (IP地址和端口),而这些参数必须与 QM2 上的监听器设置对应。Sender 通道与传输队列 QX 对应,表示凡是在 QX 中等待发送的消息最终都可以由该通道送出。双方通道必须同名。 
在连接通道的时候,我们只需在 QM1 端启动通道 start channel (C)。

开始干活: 
1.建立队列管理器 
首先,我们在10.6.159.147 建立两个队列管理器QM1、QM2,然后运行起来;

/var/mqm/sh$crtmqm QM1
/var/mqm/sh$crtmqm QM2
/var/mqm/sh$strmqm QM1
/var/mqm/sh$strmqm QM2

2.建立队列和通道 
定义qm1的队列和通道创建脚本:

/var/mqm/sh$vi define_qm1.tst
DEFINE QREMOTE (QR) RNAME (QL) RQMNAME (QM2) XMITQ (QX) REPLACE
DEFINE QLOCAL (QX) USAGE (XMITQ) REPLACE
DEFINE CHANNEL (C) CHLTYPE (SDR) TRPTYPE (TCP) CONNAME ('127.0.0.1 (1416)') XMITQ (QX) REPLACE

创建qm1的队列和通道:

/var/mqm/sh$runmqsc QM1 < define_qm1.tst  > out

查看out文件,确认没有错误;

定义qm2的队列和通道创建脚本:

/var/mqm/sh$vi define_qm2.tst
DEFINE QLOCAL (QL) REPLACE
DEFINE CHANNEL (C) CHLTYPE (RCVR) TRPTYPE (TCP) REPLACE

创建qm2的队列和通道:

/var/mqm/sh$runmqsc QM2 < define_qm2.tst  > out

查看out文件,确认没有错误;

3.在qm2运行监听器 
在qm2上运行监听器,监听连接和发报请求;

/opt/mqm/bin$runmqlsr -m QM2 -t tcp -p 1416

(停止监听器的命令:endmqlsr -m QM2)

4.运行通道 
qm2的监听器不启动时,qm1上运行通道是无法启动的,因为无法建立起连接;

/opt/mqm/bin$runmqchl -c C -m QM1

或者通过mqsc来运行通道:

runmqsc QM1
start channel (C)

5.发送测试报文

/var/mqm/sh$amqsput QR QM1
hello from qm1

6.接收测试报文

/var/mqm/sh$amqsget QL QM2
>hello from qm1

一次全部接受回来

7.不同的机器上 
进一步,我们再另外一台机器上建立QM3队列管理器:

/var/mqm/sh$crtmqm QM3
/var/mqm/sh$strmqm QM3
队列的定义与qm2一样,创建:
/var/mqm/sh$runmqsc QM3 < define_qm3.tst > out
运行监听器:
/opt/mqm/bin$runmqlsr -m QM3 -t tcp -p 1416

qm1上的队列需要修改下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

MQ通道配置的更多相关文章

  1. IBM WebSphere MQ 通道类型配置

    IBM WebSphere MQ 通道类型配置 初学MQ,四种常见通道,windows下操作 目录 Sender--Receiver Server-Receiver Server-Requester ...

  2. MQ安装配置

        (1)执行接受许可脚本: ./mqlicense.sh –accept  (2) 安装 WebSphere MQ for Linux 服务器: [root@localhost mq]# rpm ...

  3. EasyNVR无插件直播服务器软件使用详情功能-通道配置Excel

    背景需求 使用EasyNVR的用户都有知道,由于EasyNVR是将设备与EasyNVR的通道进行绑定的,因此EasyNVR是通过手动的通道配置来进行设备接入的,这样可以做到将设备的和通道对应的接入.但 ...

  4. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案使用详情功能-通道配置Excel导入导出

    使用EasyNVR的用户都有知道,由于EasyNVR是将设备与EasyNVR的通道进行绑定的,因此EasyNVR是通过手动的通道配置来进行设备接入的,这样可以做到将设备的和通道对应的接入.但是,如果手 ...

  5. Cisco基础(一):Vlan的划分、配置trunk中继链路、以太通道配置、DHCP服务配置

    一.Vlan的划分 目标: VLAN(虚拟局域网)是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制而根据用户需求进行网络分段.一个VLAN可以在 一个交换机或者跨交换机实现 ...

  6. 如何在SimpleNVR用Excel表格将通道配置简单化

    进入本世纪的第三个十年,流媒体们"绞尽脑汁",依靠技术不断提升用户的体验感.熟悉SimpleNVR的用户都知道,目前SimpleNVR已实现对接自有流媒体服务器平台,不限制观看人数 ...

  7. MQ通道搭建以及连通性检查

    场景:项目开发中使用的mq中间件一直不太熟悉,遇到问题就需要问人,公司的同事也不怎么爱搭理,弄的好受伤!不熟悉的时候只是感觉好难,逼的没办法,好好研究下,发现里面的过程也没想象中的难, 经过一番研究, ...

  8. 项目实战:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出exel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)

    需求   1.通道使能.选择.更改通道名称.设置显示颜色  2.采样率可设置(Sa/s/chj)  3.单位换算,按照给定的进行换算  4.对通道可进行设置补偿值  5.通道取消可动态显示和隐藏,并可 ...

  9. m.Tomcat使用openssl走APR通道配置单向和双向认证

    引用自: http://blog.csdn.net/gtuu0123/article/details/5827800(Tomcat的SSL单向认证)  http://blog.csdn.net/gtu ...

随机推荐

  1. Linux:使用nohup让进程在后台可靠运行

    学习之余我最大的乐趣是找一部不错的电影慢慢品味,这也是我缓解压力的最好方式之一,由于我常去的字幕组网站需要签到才可以下载字幕,像这种娱乐网站谁有时间天天记得去签到呢,but作为一个准程序猿应该有更好的 ...

  2. myString操作符重载

    写在前面的话: 重载是C++的重要内容,在自定义一个类的时候,需要对类中的方法进行重载,才能方便的实现相应的功能,比如一些运算符,构造,析构函数,一些功能函数等等,而C++语言自带的这些东西只使用于基 ...

  3. c# winform编程之多线程ui界面资源修改总结篇

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

  4. PHP 使用 password_hash() 给密码加密

    PHP >= 5.5 时,可以使用 password_hash() 和 password_verify() 来对用户的密码进行加密和验证,例如在用户注册(加密存储)和登陆(验证): <?p ...

  5. 轻量级队列beanstalkd

    一.基本Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Face ...

  6. iOS WKWebView的javascript alert 不弹的解决方案

    - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiate ...

  7. 给Source Insight做个外挂系列之一--发现Source Insight

    一提到外挂程序,大家肯定都不陌生,QQ就有很多个版本的去广告外挂,很多游戏也有用于扩展功能或者作弊的工具,其中很多也是以外挂的形式提供的.外挂和插件的区别在于插件通常依赖于程序的支持,如果程序不支持插 ...

  8. js 图片加载完后的处理事件

    //图片加载完成后再显示页面 document.getElementById('icon').onload=function(){ document.getElementById('wrap').st ...

  9. 使用jspatch进行热修复的实战总结

    最近正式在线上项目中集成了jspatch进行热修复,这里做一个简单的总结. 工具篇: 首先,用xcode来编辑js非常困难,基本上没有缩进,完全需要手写:经过研究发现使用 Sublime text3 ...

  10. 转:HAR(HTTP Archive)规范

    HAR(HTTP Archive),是一个用来储存HTTP请求/响应信息的通用文件格式,基于JSON.这个格式的出现可以使HTTP监测工具以一种通用的格式导出所收集的数据,这些数据可以被其他支持HAR ...