Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何限制spring webflux WebClient中打开的套接字数量?_Java_Spring_Spring Webflux_Project Reactor_Reactor Netty - Fatal编程技术网

Java 如何限制spring webflux WebClient中打开的套接字数量?

Java 如何限制spring webflux WebClient中打开的套接字数量?,java,spring,spring-webflux,project-reactor,reactor-netty,Java,Spring,Spring Webflux,Project Reactor,Reactor Netty,我有一些RESTful服务,我想用Reactor和SpringWebClient准备一个简单的性能基准。基准测试只是创建N个用户,然后为每个创建的用户提供M个投票 不幸的是,下面的代码超过了我的linux机器上的最大打开文件限制1024(ulimit-n1024) RestService是使用SpringWebFlux的标准WebClient实现的 有没有办法根据系统限制限制创建的套接字数量? 堆栈跟踪: Caused by: io.netty.channel.unix.Errors$Nativ

我有一些RESTful服务,我想用Reactor和SpringWebClient准备一个简单的性能基准。基准测试只是创建N个用户,然后为每个创建的用户提供M个投票

不幸的是,下面的代码超过了我的linux机器上的最大打开文件限制1024(
ulimit-n1024

RestService是使用SpringWebFlux的标准WebClient实现的

有没有办法根据系统限制限制创建的套接字数量?

堆栈跟踪:

Caused by: io.netty.channel.unix.Errors$NativeIoException: newSocketStream(..) failed: Too many open files
    at io.netty.channel.unix.Errors.newIOException(Errors.java:122) ~[netty-transport-native-unix-common-4.1.27.Final.jar:4.1.27.Final]
    ... 98 common frames omitted

我想没有。但是你可以采取措施来防止它

首先,为什么您的文件描述符限制这么低?Linux为每个打开的套接字打开一个文件描述符,因此如果您希望同时有许多打开的套接字,那么1024是非常低的。我会考虑增加这个限制。

其次,您将把并发配置留给调度程序。您应该知道,
flatMap
操作符有一个变体,允许您控制可以订阅和合并的
Publisher
数量:

Flux<V> flatMap(
            Function<? super T,? extends Publisher<? extends V>> mapper,
            int concurrency)
通量平面图(

FunctionOk,谢谢,我不知道flatMap版本,但严格来说应该是
。flatMap(mapper,false,concurrency);
至少这是我在Reactor 3中遇到的问题!您可以在这里找到仅具有mapper和concurrency的版本:
Flux<V> flatMap(
            Function<? super T,? extends Publisher<? extends V>> mapper,
            int concurrency)