WSO2 Message Broker 3.0.0和WS-Eventing

时间:2016-01-13 13:09:36

标签: wso2 wso2mb ws-eventing

我正在测试WSO2 Message Broker 3.0,但我错过了为主题订阅WS端点的功能。 可以使用MB 3.0激活此功能,因为它在MB 2.x中? 我正在尝试为WS-Endpoints实现可靠(排队)主题订阅。如何使用WSO2 MB 3.0实现?

1 个答案:

答案 0 :(得分:1)

从WSO2 MB 3.0.0中删除了WS-Eventing。但是你可以通过将WSO2 MB与WSO2 ESB集成来实现这一目标。这是用于可靠消息传递的广泛使用的通用集成模式,您还可以在发送到实际后端之前在WSO2 ESB中根据需要修改/调整消息。让我们看看我们如何做到这一点。

我将向您展示如何在本地计算机中集成WSO2 ESB和WSO2 MB。

  • http://wso2.com/products/enterprise-service-bus/下载WSO2 ESB 4.9.0(最新版本)。希望你已经拥有WSO2 MB 3.0.0(最新版本)。

  • 解压缩后,打开wso2esb-4.9.0 / repository / conf / carbon.xml文件,将<Offset>0</Offset>更改为<Offset>1</Offset>。这允许您在单台机器中运行多个碳服务器。您可以访问管理控制台https://localhost:9444/carbon

  • 打开wso2esb-4.9.0 / repository / conf / axis2 / axis2.xml并取消注释JMS传输接收器的<!--Uncomment this and configure as appropriate for JMS transport support with WSO2 MB 2.x.x-->之后的部分和JMS传输发送者<!--uncomment this and configure to use connection pools for sending messages-->之后的部分。

  • 复制andes-client-3.0.1.jar geronimo-jms_1.1_spec-1.1.0.wso2v1.jar org.wso2.securevault-1.0.0-wso2v2.jarwso2mb-3.0.0/client-lib

  • 中的wso2esb-4.9.0/repository/components/lib
  • 将以下条目添加到wso2esb-4.9.0/repository/conf/jndi.properties

    connectionfactory.QueueConnectionFactory = amqp:// admin:admin @ clientID / carbon?brokerlist ='tcp:// localhost:5672'

    connectionfactory.TopicConnectionFactory = amqp:// admin:admin @ clientID / carbon?brokerlist ='tcp:// localhost:5672'

    topic.MyDurableTopic = MyDurbleTopic

  • 首先启动WSO2 MB,然后根据您使用的操作系统在wso2server.sh文件夹中运行wso2server.batbin启动WSO2 ESB

  • 整合已完成。

让我们看看我们如何创建在WSO2 MB中创建持久订阅的JMS侦听器代理。转到ESB管理控制台,选择代理服务 - &gt;自定义代理 - &gt;切换到源视图。然后复制并粘贴到synapse配置下面以创建JMS侦听器。

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
      name="MyDurableTopicListenerProxy"
      transports="jms"
      statistics="disable"
      trace="disable"
      startOnLoad="true">
  <target>
     <inSequence>
        <property name="OUT_ONLY" value="true"/>
        <log level="custom">
           <property name="STATE" value="dispatch message..."/>
        </log>
        <send>
           <endpoint>
              <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
           </endpoint>
        </send>
     </inSequence>
     <outSequence>
        <send/>
     </outSequence>
  </target>
  <parameter name="transport.jms.ContentType">
     <rules>
        <jmsProperty>contentType</jmsProperty>
        <default>text/xml</default>
     </rules>
  </parameter>
  <parameter name="transport.jms.ConnectionFactory">myTopicConnectionFactory</parameter>
  <parameter name="transport.jms.DestinationType">topic</parameter>
  <parameter name="transport.jms.SubscriptionDurable">true</parameter>
  <parameter name="transport.jms.Destination">MyDurbleTopic</parameter>
  <parameter name="transport.jms.DurableSubscriberName">subId-x</parameter>
  <parameter name="transport.jms.CacheLevel">consumer</parameter>
  <parameter name="transport.jms.DurableSubscriberClientID">subId-x</parameter>
  <description/>
</proxy>

您可以通过更改<address uri="http://localhost:9000/services/SimpleStockQuoteService"/>来替换WS端点。这里我使用了示例axis2后端。保存代理服务后,它将在WSO2 MB中使用MyDurableTopic创建持久订阅。您不需要在WSO2 MB中创建MyDurableTopic。订阅将创建一个持久的主题(根据JMS规范。)。

现在您可以将消息发送到持久主题,并查看这些消息分派到WS端点。这是JMS到HTTP(交叉协议)传输。同样,您可以将标准模式与此设置集成。

希望这会有所帮助!

干杯!