跳至主内容

RabbitMQ HTTP API 的新响应式客户端

·阅读 2 分钟

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

反应式什么?

正如 Spring Framework WebClient 文档中所述

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

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

ReactiveClient client = new ReactiveClient("https://: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'

尽情享受吧!

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