与Vertx的多个并发连接

时间:2019-10-13 08:15:22

标签: vert.x

我正在尝试构建一个至少应能够处理15000 rps的Web应用程序。我所做的一些优化是将工作池的大小增加到20,并将接受回日志设置为25000。这对阻塞代码有帮助吗?

1 个答案:

答案 0 :(得分:0)

20个工作池似乎是the default

我相信您的情况下的重要问题是您希望每个请求运行多长时间。在我这一边,我希望有数千个短期请求,每个请求的有效负载大小约为5-10KB。由于当前使用的是阻塞的数据库驱动程序,所有这些都会阻塞。我已将默认工作程序池大小增加到40,并使用以下公式明确设置了我的垂直部署实例:

final int instances = Math.min(Math.max(Runtime.getRuntime().availableProcessors() / 2, 1), 2);

在vert.x服务器上仅进行阻止呼叫的vert.x服务器上进行的500个并发客户端运行60秒的测试运行,平均产生了11089个请求中的6个失败请求。在这种情况下,我的测试有效载荷约为28KB。

当然,根据经验,我知道在生产环境中运行软件通常会产生意想不到的结果。因此,在我的情况下,重要的是要制定好的原子性规则,这样我就不会在数据库中得到半生半熟或损坏的数据。