如何使用ActiveMQ设置Mule Publisher订购者模型?我一直在网上寻找一个简单易懂的完整示例,但却无法做到。我想要做的就是将一个字符串发送到MQ主题(使用发布者),然后从主题中读取消息(使用订阅者)。没有太复杂的
答案 0 :(得分:2)
以下步骤描述了如何将Apache MQ用作Mule Pub / Sub Model
的一部分设置Active MQ
•下载Apache的ActiveMQ。我目前正在使用版本“apache-activemq-5.2.0”
•将下载提取到已知位置(例如C:\ MQ \ apache-activemq-5.2.0)
•ACTIVEMQ_HOME的设置环境变量(C:\ MQ \ apache-activemq-5.2.0 \ bin \ win32)
•运行C:\ MQ \ apache-activemq-5.2.0 \ bin \ win32 \ InstallService.bat(卸载运行unInstallService.bat)
•要验证,请转到控制面板 - >管理工具 - >服务并寻找ActiveMQ服务
•启动服务(可以将其设置为自动启动)
•浏览到http://localhost:8161/admin/以查看MQ仪表板
===========
设置骡子发布者
选择“图书馆”标签,然后点击“添加外部广告”
浏览到MQ jar文件的位置(例如, C:\ MQ \ apache-activemq-5.2.0 \ activemq-all-5.2.0.jar)并选择确定 接受
新添加的Jar文件应该在列表中
为项目创建全局元素
选择“创建”
选择连接器配置 - > JMS - > ActiveMQ和OK接受(MQ 将具有默认设置,对于此示例,这是正常的)
拖动HTTP连接器并配置
将JMS连接器拖到HTTP连接器的右侧并配置
Flow应如下所示
<flow name="pubsubFlow1">
<http:listener config-ref="HTTP_Listener_Configuration_8075" path="/pub" doc:name="HTTP_8075"/>
<jms:outbound-endpoint connector-ref="Active_MQ" doc:name="JMS" topic="MyLocalTopic">
<xa-transaction action="NONE"/>
</jms:outbound-endpoint>
设置骡子订阅者
选择“图书馆”标签,然后点击“添加外部广告”
浏览到MQ jar文件的位置(例如, C:\ MQ \ apache-activemq-5.2.0 \ activemq-all-5.2.0.jar)并选择确定 接受
将JMS连接器拖到设计托盘上并配置
如上所述创建第二个Mule订户项目,但这次将Logger消息设置为“SECOND SUBSCRIBER - PAYLOAD FROM MQ#[payload]”。这将允许您看到订阅同一主题的两个订阅者
<flow name="pubsub_readqueueFlow">
<jms:inbound-endpoint topic="MyLocalTopic" connector-ref="Active_MQ" doc:name="JMS">
</jms:inbound-endpoint>
<logger message="FIRST SUBSCRIBER - PAYLOAD FROM MQ #[payload]" level="INFO" doc:name="Logger"/>
</flow>
行动中的应用 将消息发布到队列
使用消息
您还可以向主题发送消息,点击“MyLocalTopic”主题。在“消息正文”tex中输入并发送消息。主题中的消息计数应该递增。
订阅者输出