跳至主内容

RabbitMQ Java 客户端 5.0 发布

·阅读时长4分钟

RabbitMQ 团队很高兴地宣布发布 RabbitMQ Java 客户端 5.0 版本。新版本现已基于 Java 8,并带来了一系列有趣的新功能。

Java 8 现已成为先决条件

RabbitMQ Java Client 多年来一直支持 Java 6(发布于 2006 年!)。是时候提高先决条件以利用现代 Java 功能了。无需担心那些仍在使用 Java 6 或 Java 7 的用户:我们将在接下来的几个月内继续支持 Java Client 4.x.x 系列(进行 Bug 修复,甚至可能提供相关的新功能)。请注意,Java Client 5.0(以及 4.x.x)也支持 Java 9。

Spring 清理

一些类和接口在当今看来已不太相关,并在之前的主要版本中被标记为已弃用:例如 FlowListenerQueueingConsumer(以及其他)。它们已在 5.0 版本中被移除。

新的面向 Lambda 的方法

已为常见用例引入了面向 Lambda 的方法,例如 消费消息

consumingChannel.basicConsume(queue,
(consumerTag, delivery) -> businessService.handle(delivery),
consumerTag -> LOGGER.info("Consumer {} has been cancelled")
);

其他面向 Lambda 的方法也适用于 大多数 客户端 监听器。这将使相关的应用程序代码更简洁、更易读。

指定客户端证书的灵活性更高

在 Java 中,客户端证书通过 SSLContextKeyManager 来呈现。如果不同的客户端连接需要不同的客户端证书,在 RabbitMQ Java Client 中,它们需要不同的 ConnectionFactory 实例。在 5.0 版本中,我们引入了 SslContextFactory

public interface SslContextFactory {

SSLContext create(String name);

}

现在,您可以在 ConnectionFactory 中设置自己的 SslContextFactory,以根据连接名称来提供逻辑,从而为该连接创建适当的 SslContextSslContextFactory 实现可以从文件系统目录或任何其他证书存储库(数据库、LDAP 注册表等)中查找证书。结合 NIO(在 4.0 中添加),这是在单个 JVM 进程中使用少量线程来处理许多客户端连接的好方法。

重大变更

大版本发布是一个进行一些清理(如上所示)和引入新功能的好时机。不幸的是,这些新功能有时会破坏现有 API。请振作起来,我们努力保持向后兼容,大多数应用程序不应受到这些更改的影响。如有疑问,请参阅发行版更改日志中的 专用部分

总结

RabbitMQ 团队希望您喜欢这个新版本的 Java Client。请随时查阅 发行版更改日志 以获取所有详细信息。二进制文件一如既往地可以在 Maven Central 和我们的 Bintray 存储库 中找到。如果您使用 Maven,请添加以下依赖项以使用 RabbitMQ Java Client 5.0

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

如果您使用 Gradle

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

尽情享受吧!

© . This site is unofficial and not affiliated with VMware.