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
使用 Reactor 的 Mono
和 Flux
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'
尽情享受!