首页 > 代码库 > JBoss EAP 7消息系统

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消息系统