问题描述
我正在将vertx Web客户端(3.8.5)用于api-gateway,并将setMaxPoolSize设置为20。是每个端点还是所有端点的总限制?
我正在部署具有36个顶点的应用程序,每个顶点有1个Web客户端,这使得总共36个Web客户端,并且我的应用程序需要连接到1000多个不同的ip:port。 现在,要利用连接池的好处,如果上述限制是对总连接的限制,我需要将setMaxPoolSize> = 1000设置为使应用程序的总连接数等于1000 * 36> =36000。建议的设置是什么?适用于上述用例?
如果我将maxPoolSize设置为20,但它们都没有过期(过期时间= 60s),并且仅使用其中的10个,那么当请求不在池中的ip:port时会发生什么。 是排队还是未使用的连接之一断开并建立了新的连接(对于新的ip:port)?
我的api-gateway客户端配置应该如何处理不同ip:port的多个并发请求?
谢谢, 尼蒂什(Nitish)
解决方法
阅读vert.x代码后,我发现maxPoolSize是每个目的地的
因此,在上述情况下,它将是http客户端数* maxPoolSize(每个目标)
我预计对任何目标主机的并发请求不会超过100个。因此,将此值设置为5可得到-5 * 36(36个http客户端)= 180个连接
注意:如果在具有多个顶点的实例中运行大量的http客户端,则需要配置打开文件描述符的最大数量