Apache ActiveMQ是一款由Apache公司研制开发的目前最流行能力最强劲的开源消息总线,可以在构建企业控制设备以及构建服务器的时候使用,该软件提供的服务协议很多,大部分的传输协议都是支持的,让您在管理企业服务器的时候可以获得更多兼容型,让您传输数据更加快速;Apache ActiveMQ主要的功能就是开源消息传递,内置易于使用的企业集成模式和许多高级功能,让企业在维护Integration Patterns服务器的过程提供更多灵活的操作模式!
软件功能
使用JDBC和高性能日志支持非常快速的持久性
可以用作内存JMS提供程序,非常适合单元测试JMS
CXF和Axis支持,以便ActiveMQ可以轻松地放入这些Web服务堆栈中以提供可靠的消息传递
专为高性能集群,客户端 - 服务器,基于对等的通信而设计
完全支持JMS客户端和Message Broker中的企业集成模式
支持许多高级功能,如消息组,虚拟目标,通配符和复合目标
完全支持JMS 1.1和J2EE 1.4,支持瞬态,持久,事务和XA消息
Spring支持,以便ActiveMQ可以轻松嵌入到Spring应用程序中
软件特色
1、Apache ActiveMQ配置简单,可以部署都多种开发环境
2、支持更多的开发语言以及网络协议
3、可以在win上配置消息传递方案
4、可以在国外的Linux系统上管理服务器
5、Apache ActiveMQ的传递速度是非常快的
6、可以在搭建企业控制客户端的时候使用
7、可以开发企业使用的程序
8、提供多种管理模块,同时完全支持JMS 1.1和J2EE 1.4
9、允许您使用任何技术,协议或中间件,而不仅仅是JMS提供程序
10、执行基于内容的路由,过滤和其他企业集成模式
支持语言
·JMS1.1
·J2EE 1.4
·AMQP 1.0
·Java
·C
·C++
·C#
·Python
·Ruby
·Perl
特性列表
⒈ 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
⒉ 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
⒊ 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
⒋ 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
⒌ 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
⒍ 支持通过JDBC和journal提供高速的消息持久化
⒎ 从设计上保证了高性能的集群,客户端-服务器,点对点
⒏ 支持Ajax
⒐ 支持与Axis的整合
⒑ 可以很容易的调用内嵌JMS provider,进行测试
使用流程
按照JMS的规范,我们首先需要获得一个JMS connection factory.,通过这个connection factory来创建connection.在这个基础之上我们再创建session, destination, producer和consumer。因此主要的几个步骤如下:
1. 获得JMS connection factory. 通过我们提供特定环境的连接信息来构造factory。
2. 利用factory构造JMS connection
3. 启动connection
4. 通过connection创建JMS session.
5. 指定JMS destination.
6. 创建JMS producer或者创建JMS message并提供destination.
7. 创建JMS consumer或注册JMS message listener.
8. 发送和接收JMS message.
9. 关闭所有JMS资源,包括connection, session, producer, consumer等。
使用技巧
⒈ 这个仅仅是最基础的ActiveMQ的配置,很多地方都没有配置因此不要直接使用这个配置用于生产系统
⒉ 有的时候由于端口被占用,导致ActiveMQ错误,ActiveMQ可能需要以下端口1099(JMX),61616(默认的TransportConnector)
⒊ 如果没有物理网卡,或者MS的LoopBackAdpater Multicast会报一个错误
更新日志
5.1中的新功能
可以在ActiveMQConnection上使用新的DestinationSource来访问可用的队列或主题,或者侦听正在创建或删除的队列/主题。
支持在MessageProducer.send中更优雅地处理超时
添加已为故障转移传输连接的备份通道的选项
现在ActiveMQ配置可以针对XSD进行验证,这意味着它可以嵌入到弹簧配置文件中。
Stomp现在可以处理交付地图和对象消息。