跳到主要内容

RabbitMQ Java Client 4.0 发布

·3 分钟阅读

RabbitMQ 团队很高兴地宣布发布 RabbitMQ Java Client 的 4.0 版本。这个新版本没有引入任何重大更改,并带来了一系列有趣的新功能。

新的独立发布流程

从现在开始,Java Client 将与 Broker 分开发布。这将使发布错误修复以及新功能变得更容易和更快。

使用 SLF4J 的日志支持

SLF4J 现在在 Java Client 的多个地方使用,以报告日志消息。它也在客户端附带的默认异常处理程序实现中使用。这为应用程序开发人员提供了多种日志实现选择(例如 LogbackLog4j)以及多种将日志定向到的目标(文件,以及特定于日志记录的协议)。

指标支持

Java Client 现在可以收集运行时指标,例如已发送和已接收消息的数量。默认情况下,指标通过 Dropwizard Metrics 库收集,但如果您有任何特殊要求,则可以插拔集合。使用 Dropwizard Metrics 可以开箱即用地使用许多监控后端:JMX、Spring Boot 指标端点、Ganglia、Graphite 等。

一篇单独的博客文章将深入介绍指标支持。

支持 Java NIO

Java Client 历史上一直使用传统的 Java 阻塞 IO 库(即 Socket 及其 Input/OutputStream)。这已经工作了很多年,但并不适用于所有类型的工作负载。Java NIO 允许使用更灵活但实现起来更复杂的模型来处理网络通信。长话短说,Java NIO 允许使用更少的线程处理更多的连接(阻塞 IO 模式始终需要每个连接一个线程)。

不要将 Java NIO 视为某种涡轮按钮:您的客户端应用程序不会因为使用 NIO 而变得更快,如果您使用大量连接,它可能会使用更少的线程,仅此而已。

请注意,阻塞 IO 仍然是 Java Client 中的默认设置,您需要显式启用 NIO。NIO 模式使用合理的默认值,但您可能还需要通过 NioParams 类针对您的工作负载进行调整。

默认启用自动恢复

自动恢复 已经存在几年了,我们知道许多用户总是启用它,因此我们决定默认启用它。您仍然可以选择不使用它,但您需要显式禁用它。

其他优点和修复

这个新版本还附带了大量优点和修复。例如,查看 AddressResolver 接口:它是一个抽象,用于解析您要连接到的 RabbitMQ 主机。与自动恢复相结合,您最终会得到一个强大的客户端,它可以重新连接到最初启动时甚至没有启动的节点。

RabbitMQ Java Client 4.0 版本可在 Maven Central(以及我们的 Bintray 存储库)上找到。要使用它,如果您使用 Maven,请添加以下依赖项

<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>4.0.0</version>
</dependency>

如果您使用 Gradle

compile 'com.rabbitmq:amqp-client:4.0.0'

尽情享用!

发布变更

© . All rights reserved.