如何设置Mule发布服务器订阅服务器模型

如何设置Mule发布服务器订阅服务器模型,mule,activemq,publisher,subscriber,Mule,Activemq,Publisher,Subscriber,如何使用ActiveMQ设置Mule发布服务器订阅服务器模型?我一直在网上寻找一个完整的例子,这个例子简单易懂,但我没能做到。我要做的就是向MQ主题发送一个字符串(使用发布服务器),然后从该主题读取消息(使用订阅服务器)。没有什么太复杂的下面的步骤描述了如何将Apache MQ用作Mule发布/子模型的一部分 设置活动MQ •通过Apache下载ActiveMQ。我目前使用的是“apache-activemq-5.2.0”版本 •将下载解压缩到已知位置(例如C:\MQ\apache-active

如何使用ActiveMQ设置Mule发布服务器订阅服务器模型?我一直在网上寻找一个完整的例子,这个例子简单易懂,但我没能做到。我要做的就是向MQ主题发送一个字符串(使用发布服务器),然后从该主题读取消息(使用订阅服务器)。没有什么太复杂的

下面的步骤描述了如何将Apache MQ用作Mule发布/子模型的一部分

设置活动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服务

•启动服务(可将其设置为自动启动)

•浏览以查看MQ仪表板

===========

建立Mule出版商

  • 创建一个Mule项目
  • 右键单击项目属性并选择“Java构建路径”
  • 选择“库”选项卡并单击“添加外部JAR”

  • 浏览到mqjar文件的位置(例如 C:\MQ\apache-activemq-5.2.0\activemq-all-5.2.0.jar)并选择OK以 接受

  • 新添加的Jar文件应该在列表中

  • 选择“确定”关闭“属性”窗口
为项目创建全局元素

  • 选择“创建”

  • 选择连接器配置-->JMS-->ActiveMQ并确定接受(MQ) 将具有默认设置,该设置在本例中为OK)

拖动HTTP连接器并进行配置

  • 将端口号设置为空闲端口(例如8075)
  • 将“路径”设置为“/pub”
将JMS连接器拖到HTTP连接器的右侧并配置

  • 将Exchange模式设置为“单向”
  • 选择“主题”并为其命名(例如MyLocalTopic)
  • 从连接器配置下拉列表中–选择全局连接器 先前创建的活动MQ元素
  • 设置事务(如“X事务”)
  • 设置动作(如“无”)
流程应该如下所示

<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>

设置Mule订户

  • 创建一个Mule项目
  • 右键单击项目属性并选择“Java构建路径”
  • 选择“库”选项卡并单击“添加外部JAR”

  • 浏览到mqjar文件的位置(例如 C:\MQ\apache-activemq-5.2.0\activemq-all-5.2.0.jar)并选择OK以 接受

  • 新添加的Jar文件应该在列表中
  • 选择“确定”关闭“属性”窗口 为项目创建全局元素
  • 选择“创建”
  • 选择连接器配置-->JMS-->ActiveMQ并确定接受(MQ) 将具有默认设置,该设置在本例中为OK)
将JMS连接器拖到设计托盘上并配置

  • 将Exchange模式设置为“单向”
  • 选择“主题”并为其命名(例如MyLocalTopic)
  • 从连接器配置下拉列表中–选择全局连接器 先前创建的活动MQ元素
  • 设置交易类型(例如“NotTransaction”)
  • 设置动作(如“无”)
  • 将“记录器”连接器拖到JMS连接器的右侧,然后 配置
  • 设置消息,例如“第一个订阅者-来自MQ#[PAYLOAD]的有效负载”
如上所述,创建第二个Mule订户项目,但这次将记录器消息设置为“第二个订户-来自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>

正在运行的应用程序 将消息发布到队列

  • 运行发布应用程序
  • 使用Soap客户机(如SoapUI)将消息发布到
  • 从活动MQ仪表板浏览到 topics()以查看新添加的 信息
使用该消息

  • 运行两个订阅应用程序
  • 刷新仪表板以查看消费者添加的内容。(参见示例 我的仪表板(如下所示)

您还可以通过单击“MyLocalTopic”主题向主题my发送消息。在“消息正文”文本字段中输入消息并发送。主题中的消息计数应递增

用户输出

  • 浏览到应用程序日志的位置(对于我来说,它位于 地址:C:\Program Files\mule-standalone-3.7.0\logs)
  • 每个订阅服务器都应该有一个日志文件。内容应该是 看下面

需要更多关于你在做什么的信息。从Mule将数据发布到AMQ是直截了当的,但可以根据场景的复杂性以多种方式完成