我在Web应用程序中使用Spring WebFlux和WebClient。
我的应用程序可能无法再调用由我们再次托管的其他微服务调用“ N”。
现在的问题是我想限制我的WebClient调用对现有微服务的有限呼叫。
此外,我不想在单个调用级别上执行,而是在应用程序级别上执行。
答案 0 :(得分:0)
您可以创建一个WebClient
实例,如下所示:
ConnectionProvider fixedPool = ConnectionProvider.fixed("fixedPool", maxConnections, acquireTimeout);
HttpClient httpClient = HttpClient.create(fixedPool);
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient)).build();
答案 1 :(得分:0)
自reactor-netty 0.9.5起,布莱恩·克洛泽尔(Brian Clozel)描述的方法已被弃用,请改用:
ConnectionProvider fixedPool = ConnectionProvider.builder("fixedPool")
.maxConnections(200)
.pendingAcquireTimeout(Duration.ofMinutes(3))
.build();
HttpClient httpClient = HttpClient.create(fixedPool);
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
最大连接数和等待获取超时是随机值,请根据需要进行更改。