我正在使用Spring WebFlux和WebClient开发我的Web应用程序。
我的应用程序可能会调用我们托管的“N”个其他微服务。
现在的问题是,我想限制我的WebClient对现有微服务的同时调用数量。
此外,我不想在单个调用级别上进行限制,而是在应用程序级别上进行限制。
我已经阅读了“如何限制活动的Spring WebClient调用数量?” 和 “如何使用WebClient限制请求/秒数?”,但没有成功。
我正在使用Spring WebFlux和WebClient开发我的Web应用程序。
我的应用程序可能会调用我们托管的“N”个其他微服务。
现在的问题是,我想限制我的WebClient对现有微服务的同时调用数量。
此外,我不想在单个调用级别上进行限制,而是在应用程序级别上进行限制。
我已经阅读了“如何限制活动的Spring WebClient调用数量?” 和 “如何使用WebClient限制请求/秒数?”,但没有成功。
WebClient
实例:ConnectionProvider fixedPool = ConnectionProvider.fixed("fixedPool", maxConnections, acquireTimeout);
HttpClient httpClient = HttpClient.create(fixedPool);
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient)).build();
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();
最大连接数和挂起获取超时是随机值,根据您的需求进行更改。