MQ中将消息发送至远程队列的配置

MQ中将消息发送至远程队列的配置

摘自MQ资源管理器帮助文档V7

在开始学习本教程之前,您需要从系统管理员处了解标识网络上接收机器的名称:IP地址、MQ的端口号、队列管理器、接收(远程机器)或者是发送的队列(本地机器)名称

消息传递如图示:

本教程介绍了如何设置一台计算机上的队列管理器 QM_ORANGE 与另一台计算机上的队列管理器 QM_APPLE 之间的消息传递。在第一台计算机上创建的消息被传递到第二台计算机上的队列 Q1(此队列被称为远程队列)。

要点: 在本教程中,您将使用创建了队列管理器 QM_APPLE 和本地队列 Q1 的机器作为接收机器。

您将在发送机器上设置队列管理器和队列(远程队列定义和传输队列)。然后定义消息通道。最后,您将把测试消息放入发送机器,并从接收机器上的队列获取该消息。

完成本教程后,您应该基本了解如何使用远程队列定义来设置和使用 WebSphere® MQ 消息传递。

一、              在发送机器上创建队列管理器

二、              在发送队列管理器上创建队列

三、              创建消息通道

四、              将测试消息放入队列

五、              验证是否已发送测试消息

一、在发送机器上创建队列管理器

在发送机器上使用 WebSphere MQ 资源管理器创建队列管理器

无法远程完成此过程。必须在发送机器上本地完成此过程。

  1. 启动 WebSphere MQ 资源管理器。
  2. 在导航器视图中,右键单击队列管理器文件夹,然后单击新建 > 队列管理器 此时会打开创建队列管理器向导。
  3. 在队列管理器名称字段中,输入 QM_ORANGE。
  4. 选中设置为缺省队列管理器复选框。
  5. 单击下一步两次以转至向导的步骤 3。
  6. 确保选中启动队列管理器复选框。
  7. 确保选中自动启动队列管理器复选框。
  8. 单击下一步以转至向导的步骤 4。
  9. 确保选中创建配置用于 TCP/IP 的侦听器复选框。
  10. 如果完成按钮不可用,那么在侦听端口号字段中输入另一个端口号。 如果当前值为 1414,那么尝试输入 1415 或 1416。
  11. 单击完成。

WebSphere MQ 资源管理器的导航器视图中的队列管理器文件夹中会显示表示此队列管理器的图标,并且在您创建队列管理器后,该队列管理器会自动开始运行。

使用 MQSC 创建发送队列管理器

在发送机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来创建名为 QM_ORANGE 的缺省队列管理器:

crtmqm -q QM_ORANGE

此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。

  1. 通过输入以下命令来启动此队列管理器:

strmqm

此时会显示一条消息,告诉您何时启动了该队列管理器。

  1. 现在,您必须通过输入以下命令来创建侦听器:

runmqlsr -m QM_APPLE -t TCP -p (port number)

注: 如果未使用 -p 参数指定任何端口,那么使用缺省端口 1414,但请注意,不能对发送方和接收方使用相同的端口号,因此,如果其中一个为 1414,那么另一个就应该是 1415。

您现在已经创建了发送队列管理器。下一个任务是在此队列管理器上创建队列。

二、在发送队列管理器上创建队列

使用 WebSphere MQ 资源管理器在发送队列管理器上创建队列

在发送队列管理器上:

  1. 在导航器视图中,展开队列管理器文件夹。
  2. 展开队列管理器 QM_ORANGE。
  3. 右键单击队列文件夹,然后单击新建 > 远程队列定义... 此时会打开新建远程队列定义向导。
  4. 在名称字段中,输入 Q1。
  5. 在远程队列字段中,输入 Q1。 【注:这里新建的远程队列的名称,一定要和远程机器上的队列名称相同,否则消息会发出去,但是远程机器的队列里面收不到消息,如上文提到的的Q1与Q1,或者是如下图的testQ与testQ:
  6. 在远程队列管理器字段中,输入 QM_APPLE。
  7. 在传输队列字段中,输入 QM_APPLE。
  8. 单击完成。 您现在已经创建了远程队列定义。
  9. 单击 QM_ORANGE 队列管理器。
  10. 右键单击队列文件夹,然后单击新建 > 本地队列 此时会打开新建本地队列向导。
  11. 在名称字段中,输入 QM_APPLE。
  12. 在用途字段中,选择传输。
  13. 单击完成。 您现在已经在本地机器上创建了传输队列。

内容视图中将会显示新队列 Q1 和 QM_APPLE。

如果内容视图中未显示这些队列,请单击位于内容视图顶部的“刷新”按钮 

使用 MQSC 来在发送队列管理器上创建队列

在发送机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来启动 MQSC:

runmqsc

此时会显示一条消息,告诉您 MQSC 会话已启动。

  1. 通过输入以下命令来定义名为 QM_APPLE 的本地队列:

define qlocal (QM_APPLE) usage (xmitq)

此时会显示一条消息,告诉您何时创建了该队列。

  1. 通过输入以下命令来定义远程队列定义:

define qremote (Q1) rname (Q1) rqmname(QM_APPLE) xmitq (QM_APPLE)

您现在已经在发送队列管理器上创建了队列。下一个任务是创建发送队列管理器和接收队列管理器之间的消息通道。

三、创建消息通道

使用 MQ 资源管理器创建消息通道

  1. 接收队列管理器 QM_APPLE 上,创建通道的接收方端:

    1. 在导航器视图中,展开先前创建的队列管理器 QM_APPLE,然后展开高级文件夹。
    2. 右键单击通道文件夹,然后单击新建 > 接收方通道... 此时会打开新建接收方通道向导。
    3. 在名称字段中,输入 QM_ORANGE.QM_APPLE。
    4. 单击完成。 您现在已经在接收机器上创建了接收方通道。
  2. 发送队列管理器 QM_ORANGE 上,创建通道的发送方端:
    1. 展开先前创建的队列管理器 QM_ORANGE,然后展开高级文件夹。
    2. 右键单击通道文件夹,然后单击新建 > 发送方通道... 此时会打开新建发送方通道向导。
    3. 在名称字段中,输入 QM_ORANGE.QM_APPLE,然后单击下一步。
    4. 在连接名称字段中,输入接收机器的计算机名称或 IP 地址(您应该已经在系统管理员的帮助下获得此信息)。
    5. 在传输队列字段中,输入 QM_APPLE。
    6. 单击完成。
    7. 单击通道文件夹。
    8. 右键单击 QM_ORANGE.QM_APPLE。
    9. 从弹出菜单中,单击启动。
    10. 单击确定。 您现在已经在发送机器上创建了发送方通道。

注: 您不必启动接收方通道,因为它会在您设置发送方通道时自动启动(当设置发送方通道时,您指定了接收方通道的IP 地址)。

现在,已经在接收队列管理器 QM_APPLE 上创建接收方通道 QM_ORANGE.QM_APPLE,并且已在发送队列管理器 QM_ORANGE 上创建发送方通道 QM_ORANGE.QM_APPLE。此外,您还已经启动发送方通道,这也自动地启动了接收方通道。

使用 MQSC 创建消息通道

接收机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来启动 MQSC:

runmqsc

此时会显示一条消息,告诉您 MQSC 会话已启动。

  1. 通过输入以下命令来定义接收通道:

define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)

此时会显示一条消息,告诉您何时创建了该通道。

  1. 通过输入以下命令来停止 MQSC:

end

将显示一些消息,然后会显示命令提示符。

发送机器上打开命令提示符,然后按照以下步骤操作:

  1. 通过输入以下命令来启动 MQSC:

runmqsc

此时会显示一条消息,告诉您 MQSC 会话已启动。

  1. 通过输入以下命令来定义发送方通道:

define channel (QM_ORANGE.QM_APPLE) chltype (sdr) conname (‘con-name‘) xmitq (QM_APPLE) trptype (tcp)

值 con-name 是接收方队列管理器的 TCP 地址。

  1. 通过输入以下命令来启动通道:

start channel (QM_ORANGE.QM_APPLE)

  1. 通过输入以下命令来停止 MQSC:

end

将显示一些消息,然后会显示命令提示符。

您现在已经创建了将消息从发送队列管理器 QM_ORANGE 发送到接收队列管理器 QM_APPLE 上的队列 Q1 所需的全部 WebSphere MQ 对象。下一个任务是发送测试消息。

四、将测试消息放入队列

使用 MQ 资源管理器测试消息放入队列

点右键到远程队列上,选择“放入测试消息…”:

在弹出的界面中输入任何消息,点关闭或者是连续输入即可。

使用 MQSC 来将测试消息放入队列

在发送机器(主管队列管理器 QM_ORANGE 的机器)上执行此任务。

使用 amqsput 样本程序来将消息放入您创建的队列。

在 Windows® 上,缺省情况下样本程序随 WebSphere® MQ 服务器或客户机一起安装。在 Linux® 上,需要安装样本程序 RPM。

打开命令提示符,然后按照以下步骤操作:

  1. 启动 amqsput 样本程序,如下所示:

    • 在 Linux 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsput Q1
    • 在 Windows 上,输入命令:amqsput Q1

此时会显示以下消息:

样本 amqsput0 启动
目标队列为 Q1

  1. 在一行或多行上输入某些消息文本,然后按 Enter 键两次。 此时会显示以下消息:

样本 amqsput0 结束

您现在已经创建了测试消息并将其放入远程队列。下一个任务是验证是否已接收到测试消息。

五、验证是否已发送测试消息

使用 WebSphere MQ 资源管理器来验证是否已发送测试消息

在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。

接收队列管理器上:

  1. 在导航器视图中,展开队列管理器 QM_APPLE。
  2. 单击队列文件夹。
  3. 在内容视图中,右键单击队列 Q1,然后单击浏览消息...。 此时会打开消息浏览器,显示当前 Q1 上的消息列表。
  4. 双击列表中的最后一条消息以查看其属性对话框。

在属性对话框的数据页上,消息数据字段以人类可读的格式显示了消息的内容。

使用 MQSC 验证是否已发送测试消息

您在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。使用 amqsget 样本程序来从队列中取回消息。

打开命令提示符,然后按照以下步骤操作:

启动 amqsget 样本程序,如下所示:

  • 在 Linux® 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsget Q1
  • 在 Windows® 上,输入命令:amqsget Q1

此时会启动该样本程序,并显示您的消息以及此队列上的任何其他消息。在短暂停留后,样本程序结束,并再次显示命令提示符。

恭喜!您现在已经完成了本教程。

时间: 2024-10-12 16:36:41

MQ中将消息发送至远程队列的配置的相关文章

IBM websphere MQ远程队列的简单配置

原理: 1.远程队列分发送方和接收方 2.接收方配置: 接收方配置要先拿到对方的发送通道配置,接收方的队列名称必须和远程发送方的队列名称一致,告诉远程发送方,你的地址,队列管理器名称等信息,在通道中建立一个接受方通道即可, 远程发送方就可以连接了. 3.发送方配置: 发送方配置要先拿到对方的接收方通道配置,首先建立一个传输队列,(传输队列就是一个本地队列,只不过属性不一样),在传输队列,配置好触发器数据,对应的是发送队列名称. 然后再建立一个远程队列,配置对方远程队列管理器的参数,(包括地址,端

MQ入门知识和简单消息发送配置

消息(Message) 消息:应用数据体和消息数据头. 消息是分为持久的和非持久的,持久就是队列管理器重启houston消息仍然存在. 队列 队列就是存放消息的容易,本地队列,远程队列,别名队列,模型队列. 本地队列:队列实体 远程队列和别名队列:一种队列的定义 模型队列:模型队列是为了创建动态队列 本地队列 1.初始化队列:用于消息触发,存放触发消息的队列 2.目标队列:消息的目的地,存放消息 3.死信队列:存放不能抵达的消息 4.传输队列:用于传递消息 队列管理器 消息队列的管理者,用来维护

【MQ】消息队列及常见MQ比较

一.什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用.消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰.降低系统耦合性.目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ,我们后面会一一对比这些消息队列. 另外,我们知道队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的.比如生产者发送消息1,2,3...对于消费者就会按照1,2,3..

mq消息发送

钩子的注册: DefaultMQProducerImpl#registerSendMessageHook注册钩子处理类,可注册多个. public SendResult sendMessage( final String addr, final String brokerName, final Message msg, final SendMessageRequestHeader requestHeader, final long timeoutMillis, final Communicati

架构设计:系统间通信(20)——MQ:消息协议(下)

(接上文<架构设计:系统间通信(19)--MQ:消息协议(上)>) 上篇文章中我们重点讨论了"协议"的重要性,并为各位读者介绍了Stomp协议和XMPP协议.这两种协议是消息队列中两种不同使用场景下的典型代表.本文主要接续上文的篇幅,继续讨论消息队列中另一种典型协议:AMQP协议. 3-3.AMQP协议 AMQP协议的全称是:Advanced Message Queuing Protocol(高级消息队列协议).目前AMQP协议的版本为 Version 1.0,这个协议标准

Bluemix结合RabbitMq实现消息发送与接收实例

什么是RabbitMq? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过 队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求. 什么是Bluemix? BlueMix 是 IBM 基于 Cloud Foundr

架构设计:系统间通信(19)——MQ:消息协议(上)

1.概述 从本文开始,我们介绍另一类型的系统间通讯及输:MQ消息队列.首先我们将讨论几种常用消息队列协议的基本原理和工作方式,包括MQTT.XMPP.Stomp.AMQP.OpenWire等.然后在这个基础上介绍两款MQ产品:ActiveMQ和RabbitMQ,它们是现在业务系统中应用广泛的消息队列软件.包括他们的安装.运行.支持协议.集群化和调用方式. 当然,在这个过程中我们还会提到其他的消息队列协议(或者实现),例如微软JBossMQ.MSMQ.商业化产品WebSphere MQ.Oracl

SpringCloud04 服务配置中心、消息总线、远程配置动态刷新

1 环境说明 JDK:1.8 MAVENT:3.5 SpringBoot:2.0.5.RELEASE SpringCloud:Finchley.SR1 2 创建服务注册中心(Eureka服务端) 说明:本博文仅仅以一个单例的注册中心为例,高可用的服务注册中心请参见 2.1 引入依赖 利用IDEA创建服务注册中心项目时只需要引入 spring-cloud-starter-netflix-eureka-server 一个依赖就可以啦 <dependency> <groupId>org.

Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和区别

Kafka.RabbitMQ.RocketMQ等消息中间件的对比 -- 消息发送性能和区别 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka.RabbitMQ.RocketMQ)做了性能比较. Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目.Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输.0.8版本开始支持复制,不支持事务,对消息的重复.丢失.错误没