跳至主要内容

RabbitMQ Java 客户端 5.0 发布

·阅读 3 分钟

RabbitMQ 团队很高兴地宣布发布 RabbitMQ Java 客户端 5.0 版本。这个新版本现在基于 Java 8,并带有一系列有趣的新特性。

Java 8 现为先决条件

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

春季大扫除

如今,一些类和接口显得不太相关,并且在之前的几个主要版本中被标记为已弃用:例如 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 客户端中需要不同的客户端证书,则需要不同的 ConnectionFactory 实例。在 5.0 中,我们引入了 SslContextFactory

public interface SslContextFactory {

SSLContext create(String name);

}

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

重大更改

主要版本是进行一些清理(如上所述)并引入新特性的好时机。不幸的是,这些新特性有时会破坏现有的 API。请放心,我们努力保持向后兼容性,大多数应用程序不应该受到这些更改的影响。如有疑问,请查看发布更改日志中的 专用部分

总结

RabbitMQ 团队希望您喜欢这个 Java 客户端的新版本。请随时查阅 发布更改日志 以获取所有详细信息。二进制文件照常可在 Maven Central 和我们的 Bintray 存储库 中获取。如果您使用 Maven,则要使用 RabbitMQ Java 客户端 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'

尽情享受!

© 2024 RabbitMQ. All rights reserved.