web-dev-qa-db-fra.com

WebClient MAXConnection Pool Limit?

Combien de demandes simultanées puis-je envoyer si le service à distance s'ils bloquent? Signifie: quelle est la limite de pool maxonnection que le ressort utilise à l'intérieur lors de l'utilisation WebClient?

@Autowired
private WebClient webClient;

webClient.post().uri(url).syncBody(req).retrieve().bodyToMono(type);

Et de plus: Comment puis-je le modifier?

6
membersound

Avant Reactor-Netty 0.9.0.m4 Version Il n'y avait pas de limite par défaut en raison du fournisseur de connexion "élastique" a été utilisé. Ce correctif le modifié sur le fournisseur de connexion "corrigé" avec la limite de 500.

Pour changer la limite de pool de connexion, vous pouvez définir votre propre WebClient.Builder haricotez et utilisez-le pour créer WebClient

@Bean
public WebClient.Builder webClientBuilder() {
    String connectionProviderName = "myConnectionProvider";
    int maxConnections = 100;
    int acquireTimeout = 1000;
    HttpClient httpClient = HttpClient.create(ConnectionProvider
            .fixed(connectionProviderName, maxConnections, acquireTimeout));
    return WebClient.builder()
            .clientConnector(new ReactorClientHttpConnector(httpClient));
}

Ou vous pouvez mettre en œuvre la personnalisation org.springframework.boot.web.reactive.function.client.WebClientCustomizer de la même manière avec le prédéfini WebClient.Builder

1
Alexander Pankin

pris de la NETTY Documentation

Par défaut, le TCP utilise un pool de connexion "fixe" avec 500 comme numéro maximum des canaux et 45s comme délai d'acquisition.

1
Thomas Andolf