ActiveMQ 5.1 支持 JMS 目的地监控和 MSMQ 桥

阅读数:2611 2008 年 5 月 28 日

话题:Java开源DevOps语言 & 开发架构

开源的企业消息服务供应者Apache ActiveMQ最近发布了5.1 版,该版本在 message broker 的稳定性和性能上进行了很多改进。它还支持目的地监控、对消息按优先级排序,通过新的msmq传输组件实现的 Microsoft Message Queue(MSMQ)到 ActiveMQ 的桥。

ActiveMQ 容器的监控模块也进行了大量改进。增加一个新类——DestinationSource,它用来访问可用的QueuesTopics以及监听容器中 Queues/Topics 的创建或销毁。有一个新的API可以帮助最终用户查看可用的目的地(destinations)并对其进行查询以得到 JMS 统计信息,如活动队列数量、队列深度及消息数量等等。

新版本的其他新特性列举如下:

  • 无需 JMS Session 和 consumer 就能获取消息的新 API。
  • 增加一个新的 sendTimeout 属性,这样就可以在MessageProducer类中更加优雅地处理超时。
  • 当传输失败时,可以为已建立连接的备份通道增加选项。当主传输失败时可以动态增加备份通道。
  • ActiveMQ 的配置现在可以验证 XSD 了,这意味着它可以嵌到Spring配置文件中。

管理控制台 JAR 文件(activemq-console.jar)现在可以OSGi包的形式部署,因此它能在开源的 ESB 容器——Apache ServiceMix中重用。新版的 ActiveMQ 还解决了几个bugs,其中一些发生在高负载情况下,另一些与内存泄漏和性能有关。

去年 12 月发布的 ActiveMQ 5.0 拥有一些重要的新特性,列举如下:

  • AMQ 消息存储(AMQ Message Store)——这是一个嵌入式、事务性的消息存储,可用来进行快速、可靠的持久化。
  • 消息指针(Message Cursors是新的内存模型的一部分,当有可用的空间时(对持久化的消息使用存储指针),它可以在存储地对消息进行分页。增加该特性的目的在于解决旧版本的 ActiveMQ 中一个常见问题:当使用非持久化的消息时会导致内存溢出。
  • Blob 消息(Blob Messages):增加了一个新的BlobMessage API 以处理客户端和 ActiveMQ 服务器之间发送的 JMS 消息中的二进制大对象(Binary Large OBjects——BLOBs)。
  • 镜像队列(Mirrored Queues):增加了镜像队列特性以更加轻松地监控 ActiveMQ 容器中特定的队列上的生产者和消费者之间的消息流。这些镜像队列不用配置就可以监听 Message Broker 内的所有队列。当其可用时,镜像队列会将发送到队列中的每条消息同时发送到一个具有类似名字的 Topic;这样开发者和 web 管理员如果想查看队列上的消息交换的话,他们就可以使用镜像队列的 topic。
  • 生产者流程控制(Producer Flow Control):

    开发者可以独立

    控制

    共享的 JMS 连接上的每个生产者而不必挂起整个连接。

ActiveMQ 基于 Java 消息服务(Java Message Service,即 JMS)规范1.1 版。它还集成了 Spring 框架,因此通过 Spring 可以将 ActiveMQ 容器作为一个嵌入式 broker。 可以在其站点上找到 5.0 版的更多入门文档以及在企业应用中使用 ActiveMQ 的一些示例

Apache Camel是 ActiveMQ 的一个子项目,它用来管理运行在 ActiveMQ 容器上进程的仲裁和路由活动。Camel(一个基于 Spring 的集成框架)实现了企业集成模式,从而使得开发者可以使用基于 Java 的领域特定语言(Domain Specific Language,或者叫 Fluent API)、Scala DSL或者 Spring 的 XML 配置文件来配置路由和仲裁规则。

查看英文原文:ActiveMQ 5.1 Supports JMS Destination Monitoring and MSMQ Bridge