JBoss EAP 7消息系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JBoss EAP 7消息系统相关的知识,希望对你有一定的参考价值。

JBoss EAP 7消息服务

JBoss EAP 6的消息系统是通过HornetQ实现,这是一个JBoss的社区项目。后来HornetQ捐献给了Apache ActiveMQ项目,HornetQ社区加入对HornetQ的支持,并创建了新的消息系统Apache ActiveMQ Artemis,这就是JBoss EAP 7所使用的消息系统。Apache ActiveMQ Artemis提供了对JBoss EAP 6的兼容性支持,对HornetQ也提供了协议上的支持。

消息系统

经典的JMS 1.1系统API组成如下:

技术分享

JMS 2.0系统API组成:

技术分享

 

Apache ActiveMQ Artemis核心API

Apache ActiveMQ Artemis内核API中,把JMS Queue和Topic统一包装为一个地址(address),无差别作为核心queue操作,并以"jms.queue"为前缀。对于JMS topic,可以绑定一个或者多个queue到核心queue(Topic的表示)上,这些queue的地址被当做这个Topic的订阅(subscription)。对于JMS Queue,有唯一的queue绑定到该核心queue(Queue的表示),表示这个JMS Queue。

核心API是JMS之外的客户端API,一般可以提供比JMS更丰富的功能。

JBoss EAP 7的Apache ActiveMQ Artemis集成

一些绑定规范

  • 对于可以远程访问的Queue或者Topic需要以“java:jboss/exported” 开头的命名空间(namespace)
    •   远程客户端必须通过“java:jboss/exported”之后的文本字段查找,如testQueue的entries为“jms/queue/test java:jboss/exported/jms/queue/test”,远程客户端只能通过“jms/queue/test”来查找Queue,而本地客户端可以通过java:jboss/exported/jms/queue/test, java:jms/queue/test,或者“jms/queue/test”来查找。
  • 操作方式有CLI或者web admin console。

 

Apache ActiveMQ Artemis总览

消息API和协议

一些标准的消息系统操作方式,也是Apache ActiveMQ Artemis已经支持的协议:

  • JMS
  • System specific APIs
  • Restful API
  • AMQP(Advanced Message Queuing Protocol)
  • MQTT
  • STOMP
  • OPENWIRE

Apache ActiveMQ Artemis协议

  1. AMQP
  2. OpenWire
  3. MQTT
  4. STOMP
  5. HornetQ (for use with HornetQ clients).
  6. CORE (Artemis CORE protocol)

Artemis架构

内核架构

技术分享

Stand-alone server架构

技术分享

应用内嵌支持(Application embeded support)
与JavaEE应用服务器的集成架构

技术分享

 

以上是关于JBoss EAP 7消息系统的主要内容,如果未能解决你的问题,请参考以下文章

javax.jms.JMSException:在向JBoss EAP 7.2中的嵌入式ActiveMQ Artemis发送消息时,未能创建会话工厂。

干货分享:基于JBoss的七个Java应用场景

我无法在 JBOSS EAP 7.1 中从 EAR 或 WAR 设置系统属性

JBoss EAP 7 exclude webservices 子系统给出 NoClassDefFoundError: Failed to link EndpointDefinitionParser$

从Jboss EAP 6.4迁移到EAP 7.1

从 JBoss 7 EAP 中排除提供的 jackson 版本