转自: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. Html笔记

    1. Html就是超文本标记语言的简写,是最基础的网页语言. 2. Html是通过标签来定义的语言,代码都是由标签所组成. 3. Html代码不用区分大小写. 4. Html代码由<html&g ...

  2. session在本地可以正常使用,而在sae上却无法使用或者值为空的解决方法

    session在本地可以正常使用,而在sae上却无法使用或者值为空的解决方法: session_start()放在当前页代码的第一行即可解决该问题. 在本地上session_start()如果不是放在 ...

  3. 对拍老是忘记的看这里:bat代码

    需要写三个程序,makedata.exe 产生测试数据, program1.exe 是你要检测的程序,program2.exe 往往是一个正确但效率不高(暴力的居多)的程序. 代码很简单,稍作解释:l ...

  4. php套件 wampserver 常见问题

    安装问题 dll 丢失 今天手贱升级了win10,重新安装了一下php的套件,提示有几个组件找不到,其中有一个msvcr100.dll丢失. google了一下: youtube视频:Windows ...

  5. 使用配置文件来配置JDBC连接数据库

    1.管理数据库连接的Class 代码如下: package jdbcTest;import java.sql.Connection;import java.sql.DriverManager;impo ...

  6. 数值分析之QR因子分解篇

    在数值线性代数中,QR因子分解的思想比其他所有算法的思想更为重要[1].                                       --Lloyd N. Trefethen & ...

  7. sublime 添加代码片段(snippets)

    1.工具-新代码片段(Tools -> New Snippet) 2. <snippet> <content><![CDATA[ if(\$rs && ...

  8. 在mvc中将session的值绑定在页面上

    第一步,在SqlServer数据库中创建存储过程,查询的是用户名(员工姓名)所扮演的角色: if exists(select * from sys.objects where name='proc_s ...

  9. IO复用三种方式

    简介 IO复用技术,简单来说就是同时监听多个描述符.在没有用到IO复用以前,只能是一个线程或一个 线程去监听,服务端同时有多个连接的时候,需要创建多个线程或者进程.而且,并不是所有的连 接是一直在传输 ...

  10. spring-amqp 动态创建queue、exchange、binding

    pom.xml <!-- mq 依赖 --> <dependency> <groupId>com.rabbitmq</groupId> <arti ...