博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MQ通道配置
阅读量:4337 次
发布时间:2019-06-07

本文共 2536 字,大约阅读时间需要 8 分钟。

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) REPLACEDEFINE  QLOCAL   (QX)  USAGE  (XMITQ)  REPLACEDEFINE  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) REPLACEDEFINE  QLOCAL   (QX)  USAGE  (XMITQ)  REPLACEDEFINE  CHANNEL  (C)   CHLTYPE  (SDR)  TRPTYPE  (TCP) CONNAME  ('10.6.159.211 (1416)') XMITQ  (QX)   REPLACE

发送接收测试类似,没问题;

over;

Posted by: 大CC | 12DEC,2013
博客:
微博:

转载于:https://www.cnblogs.com/me115/p/3471788.html

你可能感兴趣的文章
阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_19、SpringBoot个性化启动banner设置debug日志...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_20、SpringBoot2.x配置全局异常实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_34、SpringBoot整合Mybatis实操和打印SQL语句...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_35、事务介绍和常见的隔离级别,传播行为...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_42、SpringBoot常用定时任务配置实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_41、SpringBoot定时任务schedule讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_43、SpringBoot2.x异步任务实战(核心知识)...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
查看>>