AsyncHttpClient 的 RestTemplate

Bil*_*ong 5 java spring spring-mvc asynchttpclient spring-boot

经过一些基准测试后,我发现 AsyncHttpClient ( https://github.com/AsyncHttpClient/async-http-client ) 似乎是最稳定和可扩展的异步 http 客户端,因为它基于 NIO 并且似乎可以很好地扩展加载期间。我将它与 OkHttp 和 Apache Async 进行了比较,在模拟具有延迟的后端时,它似乎表现得非常好。

不幸的是,我还没有找到任何方法将其公开为 Spring AsyncRestTemplate,这使得在我们现有的代码库中进行迁移变得很痛苦。

有谁知道使用该库与 RestTemplate 的任何良好桥梁,或者如果不是的话,如何在 Spring 项目中创建一个问题以将其包含在其他异步 http 客户端工厂中?

kir*_*ran -4

这是 spring RestTemplate 的官方 java 文档。

注意:默认情况下,RestTemplate 依赖标准 JDK 工具来建立 HTTP 连接。您可以通过 HttpAccessor.setRequestFactory(org.springframework.http.client.ClientHttpRequestFactory) 属性切换使用不同的 HTTP 库,例如 Apache HttpComponents、Netty 和 OkHttp。

编辑:好的,你可以用勺子喂答案:

AsyncRestTemplate template = new AsyncRestTemplate(
                new HttpComponentsAsyncClientHttpRequestFactory());
Run Code Online (Sandbox Code Playgroud)

HttpComponentsAsyncClientHttpRequestFactory 从 4.0 开始是 spring 的一部分

  • 首先,否决票是匿名的,所以你不知道是我还是其他人,如果我不是假设是我的话,我现在就会对你投否决票。其次,如果我确实投了反对票,那是有原因的;是什么让你认为你可以改变我的想法?人们可能不喜欢你的答案,这种情况时常发生;继续前行。 (2认同)