跳至主要内容

RabbitMQ HTTP API 的新响应式客户端

·阅读 2 分钟

RabbitMQ 团队很高兴地宣布发布 HOP 2.0 版,HOP 是用于 Java 和其他 JVM 语言的 RabbitMQ HTTP API 客户端。此新版本引入了基于 Spring Framework 5.0 WebFlux 的新的响应式客户端。

响应式是什么?

如 Spring Framework WebClient 文档中所述

WebClient 提供了一个功能性和流畅的 API,充分利用了 Java 8 lambda 表达式。它支持同步和异步场景,包括流式传输,并带来了非阻塞 I/O 的效率。

这意味着您可以轻松地链接 HTTP 请求并转换结果,例如计算 RabbitMQ 代理中所有虚拟主机的总速率

ReactiveClient client = new ReactiveClient("https://127.0.0.1:15672/api", "guest", "guest");
Mono<Double> vhostsRate = client.getVhosts()
.map(vhostInfo -> vhostInfo.getMessagesDetails().getRate())
.reduce(0.0, (acc, current) -> acc + current);

请注意,HOP ReactiveClient 使用 ReactorMonoFlux API。

这也意味着您可以构建一个完全响应式的仪表板应用程序来监视 RabbitMQ 集群的集群。借助底层的 Reactor Netty 库,仪表板应用程序将尽可能少地使用资源(HTTP 连接池、非阻塞 I/O)。

HOP 2.0 现已在 Maven Central 上可用。对于 Maven

<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>http-client</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>

对于 Gradle

compile 'com.rabbitmq:http-client:2.0.0.RELEASE'

尽情享受!

© 2024 RabbitMQ. All rights reserved.