ActiveMq:Apache推出的,开源的,完全支持JMS和J2EE规范的JMS Provider实现的消息中间件(Message-Oriented Middleware, MOM)。实现JMS Provider,来帮助实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统。ActiveMq的特点,多协议:TCP、SSL、NIO、UDP等、可插拔的体系结构,可以灵活定制、保证高性能的集群、支持消息持久化等。它能够以代理人和点对点的技术实现队列。
特性:
- 1.ActiveMQ支持多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
- 2.完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
- ⒊ 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性(可以和Spring进行完好整合,Spring提供了一套支持ActiveMQ的API)
- ⒋ 通过了常见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,进行测试
应用场景
- 1、异步调用。
- 2、一对多通信。
- 3、做多个系统的集成、同构、异构。
- 4、作为RPC的替代。
- 5、多个应用相互解耦。
- 6、作为事件驱动架构的幕后支撑。
- 7、为了提高系统的可伸缩性
- 消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。