首页 > 代码库 > 开源消息总线ActiveMQ
开源消息总线ActiveMQ
一、消息中间件MOM(Message-Oriented Middleware)
消息中间件是解决异步分布式系统中通讯和排队问题的中间件技术。它利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
二、ActiveMQ
1、概述
ActiveMQ 则是MOM的一个跨语言跨平台实现,它是Apache出品,最流行的、能力强劲的开源消息总线。它完整实现了JMS1.1和J2EE1.4中JMS服务(JSM定义了MOM系统的服务和接口,可以提供可靠的消息传输、事物和过滤等服务),还具备了集群、事物、存储转发、持久化等企业特性。
2、连接方式
ActiveMQ提供了丰富连接方式,按照耦合的紧密程度可以分为:直接内嵌于JBoss等J2EE容器,直接利用AMOP、Openwire等标准协议,通过适配器与Java、C++、AJAX等程序连接以及桥式连接其他JMS。
3、系统架构
ActiveMQ内部实现采用的是分层和插件相结合的系统架构,从内到外一共可以分为三层,分别是JMS核心层、接口层和插件层。
JMS核心层:是JMS服务器端的实现,完整支持JMS1.1和J2EE1.4规范,可以部署到任何兼容J2EE1.4以上的J2EE容器上。
接口层: 对外提供接口。可以分为通信接口、消息保存接口和网络服务接口三个子模块。
通信接口负责网络连接和消息传输,通过分布式命令模式解除了消息内容和通信载体的紧耦合关心,以便于消息在网络中进行传输。它与各种协议插件一起完成消 息在JMS客户端与服务器端和不同JMS之间的传输,由于插件应用层次的不同ActiveMQ拥有三种自底向下的网络通信能力:TCP、UDP、SSL、NIO、JATX等底层 网络传输;OpenWire、Stomp Rest、WS Notification、XMPP、AMQP等标准协议链路;Java、C、C++、C#、Ruby、Perl、Python、PHP、AJAX等语言级交互 通道。
消息保存接口可以支持内存、文件、内嵌数据库和外部数据库等四种消息持久化方式。
网络服务接口是高级功能的接口,支持存储转发、集群、命令服务等。
插件层:由不同的 插件构成向外提供队列、集群等服务。
4、核心数据流
JMS是发送消息的java中发送消息的中间件,包括5中数据流: ·
StreamMessage -- Java原始值的数据流 ·
MapMessage--一套名称-值对 ·
TextMessage--一个字符串对象 ·
ObjectMessage--一个序列化的 Java对象 ·
BytesMessage--一个未解释字节的数据流
开源消息总线ActiveMQ