0

对于使用消息代理 7.0 和 MQ 7.0 开发简单的发布/订阅流程,我真的很感激

我的流程应该接受没有标头的某个消息,根据字段过滤它(过程,如果值为“是”),然后将正文发布到消息节点中列出的所有队列

<pub>
  <header>
       <topics>
           <topic> Topic1  </topic>
           <topic> Topic2  </topic>
       </topics>

       <properties>
          <property>
                          <publish>yes</publish>
                  </property>     
           </properties>
   </header>

   <body>  
      <a>
         <b>The publication </b>
      </a>
   </body> 
</pub>

这是我的流程:

消息流

我在 MQ 中注册了一个主题和一个订阅,但我几乎不知道接下来应该做什么。我使用 RFHUtil 测试点对点应用程序,但不知道如何在开发发布订阅时使用它。

问题: 1. 只使用一个简单的队列作为发布者是否正确(在 MQ 输入中我只是设置“IN”,队列,我在 MQ 中) 2. 我如何在这个流程中注册订阅者/多个订阅者?什么是订阅点?

这只是一个学习任务。

欢迎任何帮助!

4

1 回答 1

3

对于正常的发布-订阅流程,您可以使用以下内容:

样品流

将 MQInput 节点的队列名称设置为您的输入队列。让我们将其命名为“inputQ”。

现在消息已由 MQInput 节点从“inputQ”读取,并已传递到计算节点。

在计算节点中,您需要将消息类型设置为发布并设置主题名称,然后再将其传递给发布节点。

您可以使用以下代码:

SET OutputRoot.MQRFH2.psc.Command = 'Publish';
SET OutputRoot.MQRFH2.psc.Topic = 'YourTopicString';

“如何在此流程中注册订阅者/多个订阅者?”

我假设您的问题是“如何发布来自同一流的不同主题的消息”。

现在假设您有多个主题要从同一个流中发布。你不能一次完成所有事情。一条消息可以有一个主题。

但是,您可以按如下方式实现(假设您有 3 个主题):

SET OutputRoot.MQRFH2.psc.Command = 'Publish';
SET OutputRoot.MQRFH2.psc.Topic = 'Topic1';
PROPAGATE TO TERMINAL 'out' DELETE NONE;
SET OutputRoot.MQRFH2.psc.Topic = 'Topic2';
PROPAGATE TO TERMINAL 'out' DELETE NONE;
SET OutputRoot.MQRFH2.psc.Topic = 'Topic3';
PROPAGATE TO TERMINAL 'out' DELETE NONE;
RETURN FALSE;

但是,如果您的要求是发布单个主题但多个队列应该选择它,那么它更简单。

您只需要为您的主题的所有这些队列创建订阅。

于 2013-01-16T16:29:23.593 回答