spring WebClient 中的连接池
Connection pooling in spring WebClient
我想在项目中使用 Spring WebClient 来使用一些外部 Web 服务。
WebClient
对象可以是单例的还是在所有线程(请求)之间共享?
- 如果我的应用程序每秒要接收数百万个请求,那么我是否需要汇集 WebClient 对象?如果是,我找不到任何文档或示例。
mono.block()
的内部工作方式是否类似于 future.get()
或 latch.await()
?
WebClient
是基于 Reactive Stack 构建的 REST 客户端的非阻塞实现,所以我想您应该关注的唯一问题是完成非阻塞调用。
- Can WebClient object be a singleton or shared among all threads (requests)?
我到处都看到的标准方法是将 WebClient
作为 bean 注入。我觉得没有理由做任何不同的事情。
@Autowired
WebClient webClient;
- If my application is going to get millions of requests per second, then do I need to pool WebClient Objects?
太多了!这肯定需要通过服务复制、负载平衡器、隔板等来解决。就客户端本身而言,请参阅使用较新版本 Spring 的反应式客户端的以下性能:WebFlux Reactive Programming Performance Test。而且,那是预期的最大吞吐量?
- Does mono.block() internally work similar to future.get() or latch.await()?
是的,确实如此。
我想在项目中使用 Spring WebClient 来使用一些外部 Web 服务。
WebClient
对象可以是单例的还是在所有线程(请求)之间共享?- 如果我的应用程序每秒要接收数百万个请求,那么我是否需要汇集 WebClient 对象?如果是,我找不到任何文档或示例。
mono.block()
的内部工作方式是否类似于future.get()
或latch.await()
?
WebClient
是基于 Reactive Stack 构建的 REST 客户端的非阻塞实现,所以我想您应该关注的唯一问题是完成非阻塞调用。
- Can WebClient object be a singleton or shared among all threads (requests)?
我到处都看到的标准方法是将 WebClient
作为 bean 注入。我觉得没有理由做任何不同的事情。
@Autowired
WebClient webClient;
- If my application is going to get millions of requests per second, then do I need to pool WebClient Objects?
太多了!这肯定需要通过服务复制、负载平衡器、隔板等来解决。就客户端本身而言,请参阅使用较新版本 Spring 的反应式客户端的以下性能:WebFlux Reactive Programming Performance Test。而且,那是预期的最大吞吐量?
- Does mono.block() internally work similar to future.get() or latch.await()?
是的,确实如此。