尽管Active MQ网站已经对ActiveMQ进行了详尽的介绍,但我想在其定义中添加更多上下文。
从ActiveMQ项目的网站上:
“ ActiveMQ是JMS 1.1的开源实现,是J2EE 1.4规范的一部分。”
这是我的看法:ActiveMQ是一种开源消息传递软件,可以用作基于消息传递的分布式应用程序体系结构的骨干。 ActiveMQ的创建者被迫创建此开源项目有两个主要原因:
- 当时可用的现有解决方案是专有的/非常昂贵
- Apache Software Foundation的开发人员正在开发完全兼容J2EE的应用服务器(Geronimo),他们需要一个JMS解决方案,该解决方案的许可证应与Apache的许可证兼容。
自成立以来,ActiveMQ已成为商业替代产品(例如WebSphereMQ,EMS / TIBCO和SonicMQ)的强大竞争对手,并已部署在从金融服务到零售等行业的一些顶级公司的生产中。
使用消息传递作为集成或通信样式会带来许多好处,例如:
- 允许使用不同语言和不同操作系统构建的应用程序相互集成
- 位置透明–客户端应用程序无需知道服务应用程序的位置
- 可靠的通信–消息的生产者/消费者不必同时使用,或者消息路径上的某些网段可以下降并返回,而不会影响到达服务/消费者的消息
- 伸缩-可以通过添加更多服务来水平伸缩(如果有太多邮件到达,则可以处理邮件)
- 异步通信–客户端可以触发消息并继续其他处理,而不会阻塞直到服务发送响应为止; 它只有在消息准备好后才能处理响应消息
- 减少耦合–由于前5个优点,大大减少了客户和服务的假设。 服务可以更改其自身的详细信息,包括其位置,协议和可用性,而不会影响或破坏客户端。
请参阅Gregor Hohpe对消息传递的描述,或他和Bobby Woolf撰写的有关基于消息传递的企业应用程序集成的书。
它还具有其他优点(希望有人可以在注释中添加其他优点或缺点),ActiveMQ是免费的开源软件,可以促进这些优点的产生,并且在生产环境中被证明具有高度的可靠性和可扩展性。
参考: 什么是ActiveMQ? 来自我们的JCG合作伙伴 Christian Posta,网址为Christian Posta Software博客。
翻译自: https://www.javacodegeeks.com/2012/04/what-is-activemq.html