Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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
Vertx java HttpClient:如何派生maxPoolSize和maxWaitQueueSize值及其影响_Java_Connection Pooling_Vert.x_Vertx Httpclient - Fatal编程技术网

Vertx java HttpClient:如何派生maxPoolSize和maxWaitQueueSize值及其影响

Vertx java HttpClient:如何派生maxPoolSize和maxWaitQueueSize值及其影响,java,connection-pooling,vert.x,vertx-httpclient,Java,Connection Pooling,Vert.x,Vertx Httpclient,我已经在VertxJava中创建了一个单java后端服务。我使用启用连接池的httpClient(io.vertx.core.http.httpClient)连接到外部服务。我的吞吐量为50。对于我的服务的每个请求,我都需要连接到外部服务。我的服务的平均响应时间为4秒,外部服务的平均响应时间约为3秒 现在我的问题是 如何为HttpClient导出maxPoolSize和maxWaitQueueSize值 maxPoolSize和maxWaitQueueSize值对内存和cpu有什么影响 我可以设

我已经在VertxJava中创建了一个单java后端服务。我使用启用连接池的httpClient
io.vertx.core.http.httpClient
)连接到外部服务。我的吞吐量为50。对于我的服务的每个请求,我都需要连接到外部服务。我的服务的平均响应时间为4秒,外部服务的平均响应时间约为3秒

现在我的问题是

  • 如何为HttpClient导出
    maxPoolSize
    maxWaitQueueSize
  • maxPoolSize
    maxWaitQueueSize
    值对内存和cpu有什么影响
  • 我可以设置为
    maxPoolSize
    maxWaitQueueSize
    的最大值是多少
  • 我是否也应该使用
    HttpClient
    setpipeline
    选项

  • 首先,注意
    maxPoolSize
    适用于每个目的地。因此,如果需要不同的池大小,请为后端创建不同的
    HttpClient

    然后,除非您在受限环境中工作,否则我建议将
    maxWaitQueueSize
    保留为默认值,即
    -1
    (无界)。考虑到预期的负载,内存中队列的大小应该相对较小

    确定可以使用的池大小值。要支持平均3s服务时间的50 req/sec吞吐量,您需要150个连接池

    可以为
    maxPoolSize
    设置的最大值取决于系统的配置方式。特别是,您需要配置打开的文件描述符的最大数量

    对于您的用例,我相信您应该避免启用管道。首先,并非所有HTTP服务器都正确支持它。第二,如果服务时间在0-3秒之间变化,则后端可能会保留响应,因为尚未处理管道中以前的请求(行首阻塞)