问题标签 [vertxoptions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
318 浏览

vert.x - Vertx http 服务器实例数不会提高吞吐量

我正在使用 Vertx 3.8.0 构建一个 http 服务器。即使我将verticle的实例设置为大于1,也无法使用CPU(只能使用大约25%的CPU)。值得一提的是,当我将实例编号设置为时,我可以获得的最佳性能是1.

我使用 apache benchmark 来测试服务器的吞吐量。

吞吐量约为每秒 8k。服务器只使用了大约 25% 的 CPU。如果我使用 http 的 keepalive,吞吐量约为 48k,CPU 约为 50%。

我使用 JMX 来监控服务器程序。似乎实例编号设置确实有效。处理请求的事件循环超过 1 个,但接受者事件循环很可能是瓶颈。

有没有办法改善这一点?我认为 vertx 的多个实例会有所帮助(如 docker),但没有更优雅的方式来利用计算资源吗?

0 投票
1 回答
468 浏览

vert.x - Vert.x GET api 对某些流量返回 400 Bad Request

我们有一个 Vert.x 应用程序,我们在其中托管了一些 HTTP GET 和 POST api。在生产测试时,我们面临一个问题,即对客户端的一个 GET api 响应是 400 - 错误请求。

这个 api 在大多数情况下都可以工作,但对于少数客户端,它会给出 400 - 错误请求。

我们已经验证客户端正确发送请求但得到 400 作为响应。

但是在运行应用程序的服务器上,我们找不到任何日志。

在 Handler 的第一行有一条日志语句,它没有为 400 - Bad Request case 打印,并且正在为所有成功的请求打印它。

0 投票
1 回答
1162 浏览

vert.x - 即使工作线程可用,Vertx Http Webclient 请求也会挂起

我有一个程序,我在其中部署了一个 worker verticle(vertx 版本 3.6.3)。从这里,工人 Verticle,我正在使用 Vertx WebClient 库发出 HTTP 请求。我的 vertx 工作池大小为 20,事件循环池大小为 10。之后,发出 http 请求(在 send() 调用之后),我阻塞了使用可完成未来发出 HTTP 请求(工作线程)的工作线程。当我阻塞工作线程时,HTTP 请求永远不会响应并且总是超时。当工作线程没有被阻塞时它会响应。我想,如果我阻塞了工作线程,池中还有其他工作线程来处理 HTTP 请求。我在这里做错了什么?此外,我启用了网络日志活动,但我没有看到任何网络日志打印在日志中。

以下是我尝试过的程序,我正在运行一个示例 HTTP 服务器,该服务器在 localhost 的 8080 端口上运行,响应良好。

0 投票
2 回答
304 浏览

vert.x - 请建议如何为 vertx 3.7.1 使用 vertx Timeout 处理程序

我正在尝试这个

仍然,我看到 200 ok 响应而不是 404 响应。代码中是否缺少某些内容。有没有其他方法可以做到这一点。

有没有办法为所有 HTTP 请求设置一般超时?

0 投票
2 回答
530 浏览

vert.x - Vert.x httpClient - 知道如何限制并发请求的数量吗?

我需要发送 x HTTP 客户端请求。我想并行发送请求,但一次不超过 y。
我将解释:客户端只能同时处理 y 个请求。我需要向客户端发送 x 请求,而 x > y。
我不想等到所有第一个 y 请求都结束,然后再发送另一批 y 请求。这种方法效率不高,因为每时每刻,我的客户都可以处理 y 个请求。如果我等到所有第一个 y 结束再发送另一个 y 请求,客户端将不会被充分利用。

  1. 任何想法如何用 vert.x 实现它?
    我正在考虑一次发送 x 个请求,然后在每次处理程序获取回调时发送另一个请求。有意义吗?
  2. HttpClientOptions中的maxPoolSize是什么意思?它与并发请求有任何联系吗?

非常感谢!

0 投票
1 回答
98 浏览

java - Vertx 服务器为每个路由设置相互验证要求

我有一个基于 Vertx (3.9.x) 的 HTTP 服务器,我需要在其中满足两组请求路径。第一个路径总是需要客户端证书 ( ClientAuth.REQUIRED) 和另一个客户端证书是可选的 (ClientAuth.REQUESTClientAuth.NONE)。

正如我所看到的,只有ClientAuth可以设置的地方是HttpServerOptions,并且它绑定到特定端口,示例代码片段如下:

路由器配置有点像下面:

是否可以在单个 Vertx 应用程序中处理这个问题?如果是,如何?

在侦听单端口时有什么选择吗?

谢谢。

0 投票
0 回答
36 浏览

vert.x - 增加 vetx 服务器的超时时间

我正在使用一个 vertx 服务器 v3.7.0 作为我的应用程序的网关。我有一个服务需要超过 2 分钟来处理数据(我几乎没有其他服务需要超过 2 分钟)。当我使用服务的端点直接调用该服务时,它工作正常。但是当我从 vertx 网关尝试类似的事情时,它会超时并给出504 Gateway Time-out

我在 vertx 文档部分读到默认超时为 30 sec。(https://vertx.io/docs/vertx-core/java/#_sending_with_timeouts)。我们对 vertx 网关有相同的要求吗?我试图寻找类似的属性以放入 json 配置中,但找不到任何相关文档。

我们如何配置这个超时的值?

0 投票
1 回答
42 浏览

vert.x - 当我们创建多个标准和工作者 Verticle 实例时,内部会发生什么?

假设我们创建了一个标准的verticle和一个worker verticle。现在我们将实例增加到 2 个。那么,当我们说 10 个用户一次请求之前发生了什么以及现在内部会发生什么?