我正在测试WSO2 Message Broker3.0,但我缺少为WS端点订阅主题的功能。这个功能可以像在MB 2.x中一样在MB 3.0中激活吗?我正在尝试为WS-Endpoint实现可靠的(排队的)主题订阅。如何使用WSO2 MB 3.0实现它?
发布于 2016-01-15 13:49:25
WS-Eventing已从WSO2 MB 3.0.0中删除。但是您可以通过将WSO2 MB与WSO2企业服务总线集成来实现这一点。这是广泛使用的可靠消息传递的公共集成模式,您还可以在将消息发送到实际的后端之前,在WSO2企业服务总线中根据需要修改/中介消息。让我们看看如何做到这一点。
我将向您展示如何在本地机器上集成WSO2企业服务总线和WSO2 MB。
.xml文件,将<Offset>0</Offset>更改为<Offset>1</Offset>。这允许您在一台机器上运行多个carbon服务器。您可以访问管理控制台https://localhost:9444/carbon
<!--Uncomment this and configure as appropriate for JMS transport support with WSO2 MB 2.x.x-->之后的部分和<!--uncomment this and configure to use connection pools for sending messages-->之后的部分。wso2mb-3.0.0/client-lib中的andes-client-3.0.1.jar geronimo-jms_1.1_spec-1.1.0.wso2v1.jar org.wso2.securevault-1.0.0-wso2v2.jar复制到wso2esb-4.9.0/repository/components/lib wso2esb-4.9.0/repository/conf/jndi.propertiesconnectionfactory.QueueConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5672‘
connectionfactory.TopicConnectionFactory = amqp://admin:admin@clientID/carbon?brokerlist='tcp://localhost:5672‘
topic.MyDurableTopic = MyDurbleTopic
wso2server.sh或wso2server.bat来启动bin ESB。让我们看看如何创建JMS listener代理,该代理创建以WSO2 MB为单位的持久订阅。进入企业服务总线管理控制台,选择Proxy service -> Custom Proxy ->切换到源视图。然后复制并粘贴到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 (跨协议)的传输。同样,您可以将标准模式与此设置集成。
希望这能有所帮助!
干杯!
https://stackoverflow.com/questions/34767600
复制相似问题