为什么使用 ActiveMQ

处理事务性的消息


ActiveMQ 的此种特性主要管理消息的事务,以及消息持久化,即使在出错时也不会漏掉一条消息。消息服务器需要进行信息持久化,一个服务器集群可以提高其可用性,ActiveMQ 正式这样的一个高可用性的消息服务器,典型的情况就是当一个 Server Node 掉线的时候,它上面的所有消息都会被保存下来,以便在它重新上线时继续处理。

 

高性能的数据分发


ActiveMQ 的这个特性主要关注的是消息的吞吐率以及高效的消息投递路由,中心思想就是在一个大的网络中尽可能快的传递大量的并且快速改变的消息数据。
鉴于大量的数据和频繁的数据数据交换负荷很高,所以这种情况下很少使用数据持久化,在失败时丢失几条数据也是可以接受的因为老的数据通常都不再被需要了,最新的数据才是真正我们关心的。
 

集群和通用的异步消息模型


这种特性重点在网络延迟和速度,当实现一个web或者EJB集群的时候,目的是维护一个node集群,典型的是使用多点广播来 discovery & keep-alive然后使用 socket 直接连接这些node来进行高效的通信。

这和使用JMS provider在EJB-Style或者WS-style的服务中作为RMI层是很相似的,都能使用多点广播来 discovery & keep-alive 并且使用socket直接连接通信以减少延迟。所以与其使用不同的服务器来协调client 之间的通信,不如让client 直接和彼此通信来减少延迟。

Ps: 此段主要讲的是 ActiveMQ 的 node 之间会有高效的异步通信机制,网络延迟小并且高效

网络数据流


这种特性关注点是 ActiveMQ 的 ajax 支持,越来越多的人希望数据流能实时的传递到网络浏览器中,例如金融行业的股票价格数据,实时的在展示 IM 会话,实时拍卖并且动态更新内容和消息。

鉴于这种情况,我们把 ActiveMQ 集成到了web容器中来提供封闭的网络集成,使用 HTTP POSTS 来发布消息并且在 js 中通过 HTTP GET来接受并展示消息。


简易的使用 HTTP 来传递消息的 API


ActiveMQ 这种特性主要关注跨语言跨技术的连接能力,我们为 message broker 提供了一个HTTP接口允许跨语言或者技术来进行简单的发送和接受消息。使用HTTP POST将消息发送到 message broker,使用HTTP GET从message broker获取消息,使用URI并且指定参数来决定接受/发送的目的地。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。