ActiveMQ简介

日期:2014-08-26点击次数:9351

       企业消息软件从80年代起就存在,它不只是一种应用间消息传递风格,也是一种集成风格。因此,消息传递可以满足应用间的通知和互相操作。但是开源的解决方案是到最近10年才出现的。Apache ActiveMQ就是其中一种。它使应用间能以异步,松耦合方式 交流。
        ActiveMQ是Apache软件基金下的一个开源软件,它遵循JMS1.1规范(Java Message Service),是消息驱动中间件软件(MOM)。它为企业消息传递提供高可用,出色性能,可扩展,稳定和安全保障。ActiveMQ使用Apache许可协议。因此,任何人都可以使用和修改它而不必反馈任何改变。这对于商业上将ActiveMQ用在重要用途的人尤为关键。MOM的工作是在分布式的各应用之间调度事件和消息,使之到达指定的接收者。所以高可用,高性能 ,高可扩展性尤为关键。
        ActiveMQ的目标是在尽可能多的平台和语言上提供一个标准的,消息驱动的应用集成。ActiveMQ实现JMS规范并在此之上提供大量额外的特性。
你最初的几步对于你成功将ActiveMQ应用在你的工作中尤为重要。对于新手,ActiveMQ看起来令人恐惧;对于有经验的人,则会比较容易理解。这一章将带你熟悉ActiveMQ。你将了解到ActiveMQ的特性集,也将了解到为什么和在哪里部署ActiveMQ。之后,你将有足够的知识去安装和开始使用ActiveMQ。
        ActiveMQ提供大量的特性,这些特性是用大量人力进行开发的。本书的各章将专注这些特性 的各个部分进行讲解。下面是一个高层次的特性列表:
1.       遵循JMS规范 ----理解ActiveMQ的起始点是明白ActiveMQ的各种特性是JMS1.1规范的实现。本章后面将讨论JMS规范提供的好处和保证。它们包括同步和 异步消息传递,一次和只有一次的消息传递,对于预订者的持久消息等等。依附于JMS规范意味着,不论JMS消息提供者是谁,同样的基本特性都是有效的。
2.       连接。ActiveMQ提供各种连接选择,包括HTTP,HTTPS,IP多点传送,SSL,STOMP,TCP,UDP,XMPP等。大量的连接协议支持使之具有更好的灵活性。很多现有的系统使用一种特定协议并且不能改变,所以一个支持多种协议的消息平台 降低了使用的门槛。虽然连接很重要,但是和其他容器集成也同样重要。第四章将讲解ActiveMQ的传输连接器(transport connectors)和网络连接器(network connectors)。
3.       可插拔的持久性和安全。ActiveMQ提供多种持久性方案可供选择,也可以完全按自己需求定制验证和授权。例如,ActiveMQ通过KahaDB提供自己的超快速消息持久方案(ultra-fast message persistence),但也支持标准的JDBC方案。ActiveMQ可以通过配置文件提供简单的验证和授权,也提供标准的JAAS登陆模块。
4.       用Java建立消息驱动应用。ActiveMQ最常用在Java应用中,用于发送和接收消息。这部分的内容涉及JMS规范API。
5.       与应用服务器集成。ActiveMQ与java应用服务器集成是很常见的。第8章提供了一些集成例子,包括Apache Tomcat,Jetty,Apache Geronimo和JBoss。
6.       客户端APIs。ActiveMQ对多种语言提供客户端API,除了Java之外还有C/C++,.NET,Perl,PHP,Python,Ruby等。这使得ActiveMQ能用在Java之外的其它语言中。很多其它语言都可以通过ActiveMQ提供的客户端API使用ActiveMQ的全部特性。当然,ActiveMQ代理器(broker)仍然是运行在java虚拟机上,但是客户端能够使用其它的被支持的语言。
7.       代理器集群(Broker clustering)。为了利于扩展,多个ActiveMQ broker能够联合工 作。这个方式就是network of brokers并且能支持多种拓扑结构。
8.       高级代理器特性和客户端选项。ActiveMQ为代理器和客户端连接提供很多高级的特性。ActiveMQ也可以通过代 理器的XML配置文件支持Apache Camel。
9.       简单的管理。ActiveMQ是为开发者设计的。它并不需要专门的管理工具,因为它提供各种易用且强大的管理特性。有很多方法去监控ActiveMQ的各个方面,可以通过JMX使用JConsole或ActiveMQ web console;可以运行ActiveMQ消息报告;可 以用命令行脚本;可以通过日志。


 

软件部   汪震