Vert Http Client最大连接池?是每个终结点池或每个终结点池?

问题描述

我正在将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客户端,则需要配置打开文件描述符的最大数量

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...