HttpResponse:对 vert.x 应用程序进行基准测试时未能响应

HttpResponse: failed to respond when benchmarking vert.x application

我使用 vert.x 构建了一个 REST Web 服务 我的机器有 8 个 CPU,我 运行 宁宁一个垂直与 16 个实例

此服务只有 1 个端点 - POST'execute'。此代码正在调用第 3 方, 所以我 运行 它作为 blockingHandler,return.

可能需要 4-30 秒

我希望一次能够支持1000个并发请求。 我开始进行一些性能和负载测试,但出于某种原因,在大约 100 个请求之后我 开始获得:

Response code: Non HTTP response code: org.apache.http.NoHttpResponseException Response message: Non HTTP response message: localhost:9999 failed to respond

我尝试执行以下操作:

这里最有趣的是 vert.x 继续工作并成功完成请求,即使 对于失败的请求。

我猜可能是网络问题,我换了电脑,我换了linux/Mac, 我一直得到相同的结果。

有人有想法吗?

使用 blockingHandler,你就是在搬石头砸自己的腿。实际上在两条腿上。

您需要做的事情:

  1. 使用常规路由处理程序
  2. 通过 EventBus 向 WorkerVerticle 发送消息
  3. 在那里打网络电话
  4. Return 在 EventBus 上的结果 reply()
  5. 通话结束()