WEB开发网
开发学院软件开发Java Geronimo 叛逆者: Apache Geronimo 的 JMS 实现:... 阅读

Geronimo 叛逆者: Apache Geronimo 的 JMS 实现:ActiveMQ

 2010-04-23 00:00:00 来源:WEB开发网   
核心提示: 但是,ActiveMQ 究竟是做什么用的呢?我与 James 谈了相当长一段时间之后,Geronimo 叛逆者: Apache Geronimo 的 JMS 实现:ActiveMQ(3),吃惊地发现,我们甚至没有提到集群,例如,如果一个消息是 please deduct $1000 from b

但是,ActiveMQ 究竟是做什么用的呢?我与 James 谈了相当长一段时间之后,吃惊地发现,我们甚至没有提到集群。所以,这时我意识到 ActiveMQ 一定不只是为集群服务的。实际上,ActiveMQ 在 Geronimo 的 MOM 中处于中心位置。

什么是面向消息的中间件?

顾名思义,面向消息的中间件就是通过使用消息(而不是直接命令)将企业内的组件连接起来的系统。“它们是原始的 SOA 之一,” James 指出,“MOM 在许多年前就流行了,它作为使用高性能异步消息交换将松散耦合的系统连接在一起的方式。例如,库存系统可能会与工资和会计系统进行通信。如果使用 MOM 将它们连接在一起,就可以在任何时候关闭任何系统,发送到这个系统的消息会放在队列中,直到系统恢复工作。这样,就可以在平台、语言、API 和(最重要的)时间方面对系统进行松散耦合。”

我问 James,除了简单地提交和接收消息之外,MOM 还有什么作用。他解释说,它提供了两个基本服务:发布/订阅和队列功能。

在发布/订阅 系统中,消费者告诉系统它正在寻找关于某一主题的任何信息。这个主题可以是很明确的,比如某只股票的价格更新,也可以是比较宽泛的,比如来自数据库的事件。当生产者产生这种消息时,客户机就会收到它们。通常,消息不是从生产者直接发送给消费者,而是由一个代理来管理消息,代理确保正确地对消息进行分发。

在队列 系统中,无法立即提交的消息会保存在队列中,当适当的时候再提交。按照这种方式,如果消费者不在线,消息也不会丢失。“MOM 通常使用持久性消息传递,” James 解释说,“一些消息被写到硬盘上,这样就不会丢失了。例如,如果一个消息是 please deduct $1000 from bank account foo。您肯定不希望丢失这个消息或者由于意外发送它两次。”

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Geronimo 叛逆者 Apache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接