跳到主要内容

用于 RabbitMQ HTTP API 的全新响应式客户端

·2 分钟阅读

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

什么是响应式?

正如 Spring Framework WebClient 文档中所述

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

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

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

请注意,HOP ReactiveClient 使用 Reactor MonoFlux 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'

尽情享用!

© . All rights reserved.