Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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
Java HttpResponse:对vert.x应用程序进行基准测试时未能响应_Java_Concurrency_Benchmarking_Vert.x - Fatal编程技术网

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

Java HttpResponse:对vert.x应用程序进行基准测试时未能响应,java,concurrency,benchmarking,vert.x,Java,Concurrency,Benchmarking,Vert.x,我使用vert.x构建了一个RESTWeb服务 我的机器有8个CPU,我运行的是一个有16个实例的垂直系统 此服务只有一个终结点-POST“execute”。此代码正在调用第三方, 所以我以blockingHandler的方式运行它,它可能需要4-30秒才能返回 我希望一次能够支持1000个并发请求。 我开始做一些性能和负载测试,但由于某种原因,在大约100个请求之后,我就开始了 开始得到: 响应代码:非HTTP响应代码: org.apache.http.NoHttpResponseExcept

我使用vert.x构建了一个RESTWeb服务 我的机器有8个CPU,我运行的是一个有16个实例的垂直系统

此服务只有一个终结点-POST“execute”。此代码正在调用第三方, 所以我以blockingHandler的方式运行它,它可能需要4-30秒才能返回

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

响应代码:非HTTP响应代码: org.apache.http.NoHttpResponseException响应消息:非http 响应消息:localhost:9999未能响应

我试着做到以下几点:

  • 我用一个实例放了一个竖线。
    • 我编写了一个java代码,它运行10/20/30…/100个并发线程,每个线程都发出POST请求
    • 90个请求都很好,大多数情况下100个也不错。当我尝试105110时,我开始遇到这些失败
    • 我换成了Jmeter,同样的问题,同样的数字
    • 切换到ab和wrk-同一问题
    • 我在我的16个env实例上测试了同样的东西——同样的数字
    • 看起来无论我设置了什么连接超时或请求超时,20秒后客户端都会“放弃”
这里最有趣的是,vert.x继续工作并成功地完成请求,甚至 对于失败的请求

我猜可能是网络的原因吧,我换了电脑,换了linux/Mac, 我一直在得到同样的结果


有人有主意吗?

使用
blockingHandler
,你就是在打自己的腿。实际上是双腿

您需要做的是:

  • 使用常规路由处理程序
  • 通过EventBus将消息发送到WorkerVerticle
  • 你的网络电话在那里吗
  • 通过带有
    reply()的EventBus返回结果
  • 调用结束()

  • 请发布处理消息服务器端的代码。另外,服务器是否对响应调用end()函数?我无法发布原始代码,所以我稍微模拟了一下(此代码也会产生错误):router.post(“/dummy”).blockingHandler(r->{try{Thread.sleep(3000);}catch(InterruptedException e){e.printStackTrace();}r.response().setStatusCode(200.end(“OK”);});