【问题标题】:WSO2 ESB Proxy - JMS Message SelectorWSO2 ESB 代理 - JMS 消息选择器
【发布时间】:2013-08-09 17:12:15
【问题描述】:

我们让 WSO2 ESB 监听单个 ActiveMQ 队列。但是,我们希望在侦听 JMS 队列时配置多个代理。但是我们希望代理只使用为其指定的消息。 是否有一种机制可以在 ESB 代理上设置 JMS 消息选择器,以便它只使用为其指定的消息。 ?

谢谢 拉吉夫·帕蒂尔

【问题讨论】:

    标签: jms wso2 selector message esb


    【解决方案1】:

    AFAIK 不可能执行这样的选择。但是,有两种可能的方法可以实现上述目标。

    1. 让每个代理读取所有消息并选择要在代理内部处理的消息
    2. 使用EIP pattern 来实现上述目的。一种可能的模式是Message Routing,您可以在其中选择消息并将消息定向到将执行处理的所需序列或代理。

    【讨论】:

      【解决方案2】:

      是的,您可以让多个代理服务监听同一个队列,每个服务都遵循特定的 JMS 消息选择器。您必须像这样为每个代理设置transport.jms.MessageSelector 参数(值 100 是可变的,每个代理服务包含不同的数字):

      <parameter name="transport.jms.MessageSelector">account='100'</parameter>
      

      向 JMS 代理发送消息的 Java 消息生产者正在设置消息选择器:

      // this will set a key/value pair as JMS message selector
      // 100 should be a variable in your case
      message.setStringProperty("account", "100");
      

      这是在 ActiveMQ 4.7 和 WSO2 ESB 4+ 上测试的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-25
        • 2013-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 1970-01-01
        • 2012-09-08
        相关资源
        最近更新 更多