【问题标题】:Publish/subscribe MessageBroker + MQ basics发布/订阅 MessageBroker + MQ 基础知识
【发布时间】:2012-12-30 19:36:30
【问题描述】:

如果能帮助我使用消息代理 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. 如何在此流程中注册订阅者/多个订阅者?什么是订阅点?

这只是一项学习任务。

欢迎任何帮助!

【问题讨论】:

    标签: ibm-mq publish-subscribe messagebroker


    【解决方案1】:

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

    设置,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;
    

    但是,如果您的要求是发布单个主题,但需要多个队列来获取它,那么它就更简单了。

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

    【讨论】:

    • 可以在没有 MQInput 的情况下发布消息吗?喜欢:APIRest -> ComputeNode -> 发布
    • @Bruno 是的,当然。只需确保在发布之前创建有效的 MQ 标头即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2018-05-25
    • 2014-11-28
    相关资源
    最近更新 更多