Mule 队列是否可以在发布-订阅模式下直接使用主题

Mule 队列是否可以在发布-订阅模式下直接使用主题,mule,Mule,队列是否可以在发布-订阅模式下直接使用某个主题。是否有人可以提供此方面的指针。我使用WebSphereMQ作为JMS代理。设置此代理的Mule配置应该是什么 <!-- Publisher Flow --> <flow name="PublisherFlow" doc:name="PublisherFlow"> <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="

队列是否可以在发布-订阅模式下直接使用某个主题。是否有人可以提供此方面的指针。我使用WebSphereMQ作为JMS代理。设置此代理的Mule配置应该是什么

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>
骡子配置

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>
testTopic10是主题名称 testQueue10是队列名称

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>
连接器配置

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>

这很简单,你可以看一下,然后。但基本上你需要:

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>
配置WMQ连接器

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>
<wmq:connector name="wmqConnector" hostName="${wmq.host}" port="${wmq.port}" queueManager="${wmq.queue.manager}" username="${wmq.username}" password="${wmq.password}" />
创建具有端点的流

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>
<flow name="MessageProcessor">
    <wmq:inbound-endpoint connector-ref="wmqConnector" queue="topic.in">
    ...
</flow>
将MQ JAR添加到MULE_HOME/lib/user

<!-- Publisher Flow -->
<flow name="PublisherFlow" doc:name="PublisherFlow">
    <file:inbound-endpoint path="c:\retryin" responseTimeout="10000" doc:name="File"/>
    <object-to-string-transformer doc:name="Object to String"/>
    <jms:outbound-endpoint topic="testTopic10" doc:name="JMS" connector-ref="WMQ_Pub_Topic_Connector"/>
</flow>

<!-- Transfer from topic to Queue -->
<flow name="SubscriberFlowQueueTransfer" doc:name="SubscriberFlowQueueTransfer">
    <jms:inbound-endpoint topic="testTopic10" connector-ref="WMQ_Pub_Topic_Connector" doc:name="JMS">
    </jms:inbound-endpoint>
    <logger message="Entered Subscriber Queue transfer" level="INFO" doc:name="Logger"/>
    <jms:outbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
    </jms:outbound-endpoint>
</flow>

<!-- Subscriber Flow -->

<flow name="SubscriberFlowQueue" doc:name="SubscriberFlowQueue">
    <jms:inbound-endpoint queue="testQueue10" connector-ref="WMQ_Sub_Queue_Connector" doc:name="JMS">
        <jms:transaction action="ALWAYS_BEGIN" timeout="3000"/> 
    </jms:inbound-endpoint>
    <logger message="Entered subscriber flow" level="INFO" doc:name="Logger"/>
    <ftp:outbound-endpoint host="XXX.XXX.XX.XX" port="21" path="path" user="test" password="test123" responseTimeout="10000" doc:name="FTP"/>
    <rollback-exception-strategy  doc:name="Rollback Exception Strategy" enableNotifications="false"/>
</flow>
com.ibm.mq.jar com.ibm.mqetclient.jar(如果使用远程XA事务) com.ibm.mq.jmqi.jar com.ibm.mqjms.jar dhbcore.jar
我无法恰当地解释。发布者将消息发送到消息主题。订阅者是一个消息队列,它直接使用来自主题的消息。我已经修改了前面的问题,添加了mule配置。通过添加从主题到队列的配置传输,我能够实现这一点。请参考上面的配置。如果没有这个步骤,队列是否可以直接从主题中使用消息?您是否可以将第一个流中的消息直接放到主题中?别名行吗?桥能用吗?href=