跳至主要内容

RabbitMQ Java 客户端 4.0 已发布

·阅读时长 3 分钟

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

新的独立发布流程

从现在开始,Java 客户端将与代理分开发布。这将使修复错误以及发布新功能变得更加容易和快速。

SLF4J 日志记录支持

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

指标支持

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

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

支持 Java NIO

Java 客户端一直使用传统的 Java 阻塞 IO 库(即 Socket 及其 Input/OutputStream)。这种方法已经使用多年,但并不适合所有类型的负载。Java NIO 允许使用更灵活但更复杂的方法来实现处理网络通信的模型。简而言之,Java NIO 允许使用更少的线程处理更多连接(阻塞 IO 模式始终需要每连接一个线程)。

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

请注意,阻塞 IO 仍然是 Java 客户端的默认设置,您需要显式启用 NIO。NIO 模式使用合理的默认设置,但您可能还需要通过 NioParams 类根据您的负载对其进行调整。

默认情况下启用自动恢复

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

各种好处和修复

此新版本还附带了一系列好处和修复。例如,看一下 AddressResolver 接口:它是用于解析您要连接到的 RabbitMQ 主机的抽象。与自动恢复相结合,您最终得到一个健壮的客户端,该客户端可以重新连接到最初启动时甚至还没有启动的节点。

RabbitMQ Java 客户端版本 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'

尽情享受!

发布变更

© 2024 RabbitMQ. All rights reserved.