问题标签 [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.
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),但没有更优雅的方式来利用计算资源吗?
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 打印,并且正在为所有成功的请求打印它。
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 端口上运行,响应良好。
vert.x - 请建议如何为 vertx 3.7.1 使用 vertx Timeout 处理程序
我正在尝试这个
仍然,我看到 200 ok 响应而不是 404 响应。代码中是否缺少某些内容。有没有其他方法可以做到这一点。
有没有办法为所有 HTTP 请求设置一般超时?
vert.x - Vert.x httpClient - 知道如何限制并发请求的数量吗?
我需要发送 x HTTP 客户端请求。我想并行发送请求,但一次不超过 y。
我将解释:客户端只能同时处理 y 个请求。我需要向客户端发送 x 请求,而 x > y。
我不想等到所有第一个 y 请求都结束,然后再发送另一批 y 请求。这种方法效率不高,因为每时每刻,我的客户都可以处理 y 个请求。如果我等到所有第一个 y 结束再发送另一个 y 请求,客户端将不会被充分利用。
- 任何想法如何用 vert.x 实现它?
我正在考虑一次发送 x 个请求,然后在每次处理程序获取回调时发送另一个请求。有意义吗? - HttpClientOptions中的maxPoolSize是什么意思?它与并发请求有任何联系吗?
非常感谢!
java - Vertx 服务器为每个路由设置相互验证要求
我有一个基于 Vertx (3.9.x) 的 HTTP 服务器,我需要在其中满足两组请求路径。第一个路径总是需要客户端证书 ( ClientAuth.REQUIRED
) 和另一个客户端证书是可选的 (ClientAuth.REQUEST
或ClientAuth.NONE
)。
正如我所看到的,只有ClientAuth
可以设置的地方是HttpServerOptions
,并且它绑定到特定端口,示例代码片段如下:
路由器配置有点像下面:
是否可以在单个 Vertx 应用程序中处理这个问题?如果是,如何?
在侦听单端口时有什么选择吗?
谢谢。
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 配置中,但找不到任何相关文档。
我们如何配置这个超时的值?
vert.x - 当我们创建多个标准和工作者 Verticle 实例时,内部会发生什么?
假设我们创建了一个标准的verticle和一个worker verticle。现在我们将实例增加到 2 个。那么,当我们说 10 个用户一次请求之前发生了什么以及现在内部会发生什么?