我正在测试WSO2 Message Broker 3.0,但我错过了为主题订阅WS端点的功能。 可以使用MB 3.0激活此功能,因为它在MB 2.x中? 我正在尝试为WS-Endpoints实现可靠(排队)主题订阅。如何使用WSO2 MB 3.0实现?
答案 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.jar
至wso2mb-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.bat
或bin
启动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(交叉协议)传输。同样,您可以将标准模式与此设置集成。
希望这会有所帮助!
干杯!