设为首页 收藏本站
查看: 1071|回复: 0

[经验分享] 集成 WebSphere Message Broker 与 Apache ActiveMQ

[复制链接]
发表于 2017-1-6 10:22:22 | 显示全部楼层 |阅读模式
  简介
  Apache ActiveMQ(以下简称 ActiveMQ)是最流行、最强大的开源消息代理和消息服务器。它支持 JMS 1.1 和 J2EE 1.4。因为许多企业正在将开源技术集成到其消息基础架构中,所以本文将使用一个示例消息来展示如何配置 IBM® WebSphere® Message Broker(以下简称 Message Broker),使它能够以 JMS 提供程序的身份与 Apache ActiveMQ 集成。
  为了展示 Message Broker 与 ActiveMQ 的集成,本文将使用集成即服务 (IaaS) 提供程序 Meddius,它使用 ActiveMQ 通过 JMS 提供了一个 HL7 解决方案。在下图中,ActiveMQ 通过 JMS 从 Meddius 接收 HL7 消息,将它们转发给 Message Broker(它使用自己的 Compute 节点来处理它们),然后将 HL7 事务写入一个数据库表中。
  
图 1
DSC0000.gif
  配置 ActiveMQ


  • 从 Apache ActiveMQ 网站 将 ActiveMQ V5.7 下载并安装到一台安装了 Message Broker Toolkit 的 Microsoft Windows 机器上。
  • 完成安装之后,启动 ActiveMQ 消息代理:运行批处理文件 apache-activemq-5.6.0\bin\activemq.bat。直到在控制台输出中看到以下消息:

    图 2
    DSC0001.jpg
  • 打开一个浏览器窗口,然后在 URL 框中输入 http://localhost:8161/admin,以便打开 ActiveMQ 管理控制台:

    图 3
    DSC0002.jpg
  • 单击 Queues 选项卡并创建两个队列:IN.Q 和d OUT.Q:

    图 4
    DSC0003.jpg
  • 创建一个包含如下所示内容的 JNDI 属性文件,将它保存为 jndi.properties:

    java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
    java.naming.provider.url = vm://localhost
    connectionFactoryNames =
    connectionFactory, queueConnectionFactory, topicConnectionFactory
    queue.jmsINQ = IN.Q
    queue.jmsOUTQ = OUT.Q



    DSC0004.jpg   jmsINQ 和 jmsOUTQ 分别对应于物理队列 IN.Q 和 OUT.Q 的 JMS 目标。

  • 也可使用一个名为 ConnectionFactory 的预定义连接工厂,为实际队列名称添加 dynamicQueues/ 作为前缀,以避免创建 jndi.properties 文件。
  配置 WebSphere Message Broker


  • 将 ActiveMQ JAR 文件 activemq-all-5.6.0.jar 复制到 Message Broker 共享类目录。
  • 将上面创建的 jndi.properties 文件复制到 Message Broker 类目录。
  配置消息流


  • 启动 Message Broker Toolkit 并创建一个消息流,如下所示:

    图 6
    DSC0005.jpg
  • 这个消息流从 jmsINQ 读取消息,处理它们,然后将 HL7 事务写入一个数据库表中。
  • 配置 JMS Input 节点的 JMS 连接参数,如下所示:

    图 7
    DSC0006.jpg

      也可定义一个 JMSProvider 可配置服务,将该节点配置为使用该可配置服务。如果选择创建动态队列而不使用 jndi.properties 文件,那么可以将连接工厂名配置为 ConnectionFactory。

  • 配置 JMS Input 节点的 Basic 选项卡,如下所示。如果选择创建动态队列,那么可以将源队列配置为 dynamicQueues/IN.Q。

    图 8
    DSC0007.jpg
  • 将处理节点添加到 Compute 节点中,然后创建 SQL 查询,将已处理的事务写入 Database 节点中的某个数据库表中。
  • 编译消息流并创建一个 BAR 文件。
  • 如果代理正在运行,则停止它。
  • 启动代理。
  • 使用您创建的 BAR 文件来部署消息流。
  • 检查代理日志文件,确保已建立 JMS 与 ActiveMQ 的连接。
  测试消息流


  • 在 ActiveMQ 管理控制台上,单击 Send 选项卡:

    图 9
    DSC0008.jpg
  • 将一个示例 HL7 消息放在 IN.Q 上:

    图 10
    DSC0009.jpg

    测试消息正文的详细内容如下所示:

    MSH|^~\&|EPIC|EPICADT|SMS|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5|
    PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET
    AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
    NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC|||||||||||||||||||||||||||
    PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^||||||||||
    ||2688684|||||||||||||||||||||||||199912271408||||||002376853


  • 检查数据库,确保 HL7 事务已经写入数据库表中。
  结束语
  本文介绍了如何配置 WebSphere Message Broker JMS 节点,使它能够作为一个 JMS 提供程序与开源的 Apache ActiveMQ 消息服务器进行通信。您可以扩展上述解决方案,添加一个 JMSOutput 节点来实现请求-响应场景。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324591-1-1.html 上篇帖子: Fedora8中Apache服务的配置 下篇帖子: org.apache.commons.io.FileUtils学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表