异步 Spring 远程处理 (AMQP) 客户端

Asynchronous Spring Remoting (AMQP) Client

我有一个 Spring 启动 Web 应用程序实现了 API 网关模式,其中嵌入式 Tomcat 实例接收请求并将它们转发给许多微服务(也 Spring 引导应用程序)。我正在使用 Spring Remoting with AMQP 建立通信,对这些服务的一些调用可能需要一段时间才能完成(最昂贵的调用需要 1-2 秒)。

我已经在这些微服务上成功配置了侦听器并发性,并且一切正常,但现在我想知道客户端的默认行为是什么。对这些微服务的调用是同步的还是异步的?而且,如果它们默认是同步的,我怎样才能使它们异步,这样这些调用就不会阻塞它们所在的 "Tomcat" 线程(使其可用于处理其他请求,同时等待来自服务的响应)?

1.6 版本 introduces a new AsyncRabbitTemplate。调用 sendAndReceive()(和 convertSendAndReceive())方法时,会返回一个 ListenableFuture,您可以使用它注册回调以接收回复。