首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于AsyncHttpClient的RestTemplate

用于AsyncHttpClient的RestTemplate
EN

Stack Overflow用户
提问于 2016-10-15 02:59:37
回答 2查看 4.3K关注 0票数 4

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

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

有没有人知道RestTemplate使用库的好桥梁,或者如果没有,如何在Spring项目中创建一个问题来将其包含在其他异步http客户端工厂中?

EN

回答 2

Stack Overflow用户

发布于 2017-08-27 16:26:09

你不能对异步请求使用RestTemplate,这就是AsyncRestTemplate的作用。您需要实现自己的AsyncClientHttpRequestFactory。我简要地查看了您在帖子中提供的链接,看起来您可以包装一个AsyncRestClient并从AsyncClientHttpRequestFactory.createAsyncRequest返回BoundRequestBuilder。然后,您基本上需要将来自特定于Spring的接口的调用委托给AsyncRestClient-specific类。这应该不会太难。

也就是说,Spring5Web附带了一个WebClient,它可以执行异步操作甚至更多。我建议在构建自己的异步库之前认真考虑一下,尽管是在另一个异步库之上。

票数 3
EN

Stack Overflow用户

发布于 2017-08-27 13:15:01

这是spring RestTemplate的官方java文档。

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

编辑:好的,在这里你可以用汤匙馈送的答案:

代码语言:javascript
复制
AsyncRestTemplate template = new AsyncRestTemplate(
                new HttpComponentsAsyncClientHttpRequestFactory());

HttpComponentsAsyncClientHttpRequestFactory从4.0开始就是spring的一部分

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40050277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档