问题标签 [vertx-verticle]

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 回答
72 浏览

vert.x - 消息在 2 个不同 Vertx 实例下的 2 个顶点之间传递。是否可以?

我正在尝试使使用 2 个不同 Vert.x 实例部署的 2 个 Verticle(X,Y)之间的通信成为可能。

X 在“地址”上发送消息 eventbus().send("Address", message, replyHandler)

Y可以在同一个地址上收听吗?eventbus().localConsumer("Address", eventHandler)

0 投票
1 回答
88 浏览

vert.x - 将vertx httpserver部署为worker verticle时如何获取等待处理的请求数?

在将 HTTP 服务器部署为工作线程时,是否有任何其他方法可以让多个请求等待工作线程处理?我需要https://vertx.io/docs/vertx-dropwizard-metrics/java/#_pool_metrics的替代品。

0 投票
2 回答
1713 浏览

kotlin - vert.x 工作线程中的异常

我对 vert.x 平台很陌生。我的项目中有一个标准和一个工人 verticle,它通过 eventBus 进行通信。worker verticle 在循环和数据库访问中执行多个 REST API 调用。

我的问题是工人verticle在某些运行中没有问题地完成任务,但有时它会抛出错误。

Exception in thread "vert.x-worker-thread-12" io.vertx.core.VertxException: Connection was closed

我正在使用 kotlin 协程来处理constructDevice(vertx: Vertx)执行大多数 REST API 调用和数据库访问的函数。

谁能告诉我上述问题的原因是什么,还有什么方法可以改进constructDevice(vertx: Vertx)功能以有效地处理多个 REST API 调用和 MongoDB 访问。

更新的问题:1

@Damian 我已根据您的输入更新了我的问题。为了便于理解,我已经简化了上面的问题,但是当我尝试使用 promise/future 来实现这些事情时,我在某些时候遇到了困难。

我的任务是从不同的 REST 端点获取数据并从中获取 kotlin 类,我想并行处理。

更新的问题:2

@Damian 正如你所建议的,我已经更新了我的代码。

我的问题在里面

在这里,大多数期货都没有解决,执行在这里被绞死。

所以我已更改CompositeFuture.all(futureList).onCompleteCompositeFuture.join(futureList).onComplete根据 vert.x 文档加入将等待所有未来完成

连接组合一直等到所有未来都完成,无论是成功还是失败。CompositeFuture.join 接受多个期货参数(最多 6 个)并返回一个期货,当所有期货都成功时成功,当所有期货都完成并且至少其中一个失败时返回失败

但现在很少有期货会失败。这是更改为之后的未来列表的输出CompositeFuture.join

由于我的设备无法处理并发请求,因此很少有期货失败?还有为什么程序执行卡在里面

如果设备并发请求处理存在问题,那么解决此问题的其他解决方案是什么。是否可以在 vertx 环境之外运行整个其余调用并通过事件总线与其通信?

此外,如果我部署DeviceDiscoverVerticle为标准 Verticle 而不是工作 Verticle,则应用程序完全卡在 CompositeFuture.all(futureList).onComplete.

0 投票
1 回答
651 浏览

scala - Vertx Web:如何跨多个文件拆分和组织路由?

到目前为止,我真的很喜欢 Vertx。文档很棒,跨语言支持也很棒。

但是,针对我的具体问题的示例和文档似乎都已过时。我想 API 已经发生了一些变化3.4.x(我目前正在使用3.9.1Scala 2.13.1

我希望能够将我的路线拆分到多个文件中,以使事情井井有条。例如,我想要一个UserRoutes文件,并为 . 创建一个单独的文件TodoRoutes,这两个文件都可以在我的ServerVerticle.

我发现这样做的唯一方法基本上是:

用户路线:

服务器垂直:

我真正想做的是:

我更喜欢这个的原因是因为这样更容易确切地看到正在做什么UserRoutes,例如正在使用什么路径,需要什么参数等。

我尝试对这个示例应用程序采用类似的方法,但显然这对于​​ Vertx API 是不可能的,因为它存在于3.9?

做这个的最好方式是什么?我错过了什么?大型 REST API 如何分解它们的路由?

0 投票
1 回答
47 浏览

java - 在 Java API 上使用 JMeter 进行低环境性能测试需要多长时间

我正在我的 Java Vertx API 开发设置上运行一些较低的环境性能测试。我们应该继续运行该测试多长时间才能获得可接受的数字。请分享这方面的任何标准指南文件。我正在使用 JMeter 进行性能测试。我的应用程序堆栈 Java、Spring、JDBC、Vertx、Oracle

0 投票
1 回答
1026 浏览

java - Vertx 事件总线拦截器阻塞请求调用

当收到来自客户端的呼叫并响应回客户端时,我正在尝试通过事件总线发送数据。

一切正常,直到我在事件总线上添加拦截器..

这是代码: -

另一个疑问是,当我从 IDE 停止应用程序时,不会调用 Stop 方法,但是如果我从另一个工作正常的 Verticle 取消部署该 Verticle。

0 投票
1 回答
46 浏览

vert.x - Vert.x 节点集群上的 verticles 公平分布

我一直在尝试使用 Vert.x 高可用性功能来测试水平可伸缩性和弹性。我有一个基于 Hazelcast 的几个节点的集群。我正在通过 HTTP API 在任何节点上创建 Verticle。Verticles 在HA创建时设置了标志。

测试可扩展性

如果我的n节点Nn加载了 HA-verticles,并且如果我添加了一个额外的节点,则没有从新Nn节点上的节点迁移的 Verticle,以便平衡负载。有没有办法告诉 Vert.x 这样做,或者不这样做?我相信这不是那么简单...

测试弹性

如果我有加载了 HA-verticles 的n节点Nn并且我杀死了其中一个节点,那么来自该节点的所有 verticles 都会被迁移,但会迁移到剩余节点中的一个节点上,该节点并不总是负载最少的节点。该目标节点可能会过载,整个集群将面临冻结或崩溃的风险。和以前一样的问题:有没有办法强制Vert.x 在所有节点上平衡重新启动的 verticles,或者至少在负载最少的节点上平衡?

0 投票
1 回答
775 浏览

intellij-idea - 如何在 IntelliJ 中以调试模式启动 Vert.x Verticle

与这个问题非常相似,但并不完全重复(我认为)。

我有一个 Vert.x Verticle,我按照上述问题的答案中的描述运行它(即通过io.vertx.core.Launcher使用相关参数执行,但我试图在调试模式下启动同样的事情。

在回答上述问题的其他地方,我看到人们建议向main()Verticle 添加一个方法并在运行或调试模式下执行该方法,但我宁愿不纯粹为此目的添加冗余代码。

我能想到的唯一选择是像我一样启动 Verticle,但使用 VM 参数让它等待调试器,然后在 IntelliJ 中启动远程调试配置。不过感觉很笨拙;有没有更好的办法?

0 投票
1 回答
189 浏览

java - 如何在java中使用vertx调用api 4次然后继续

现在的问题是我不想修复 1000 毫秒的时间,我只想调用 api 4 次,然后使用最终的 api 响应进行进一步处理,请帮助。

0 投票
0 回答
355 浏览

java - 将 Quarkus 与裸 Vertx 一起使用:服务器仅响应一个连接

我试图用裸 Vertx 创建一个 Quarkus 应用程序。但是,我不能多次卷曲。只有第一个 curl 给了我正确的回应。

我尝试在没有 Quarkus 的情况下使用 Vertx(主要方法)。然后一切正常。每个卷曲都会给出正确的响应。所以我认为我在使用 Quarkus 时初始化 Vertx 是错误的。

代码:垂直部署器

代码:垂直

编辑:我向 curl 命令发送了垃圾邮件,偶尔我得到了正确的响应。每 16 个 curl 命令都会正确响应。

更新:除了 curl 垃圾邮件,我做了一些测试。我用过,邮递员,谷歌浏览器和 Safari。

嘿:5% - 15% 是 200,其余的是 404。

邮递员:我只收到404,但是重启服务器后,它只响应200。

浏览器:只有一个选项卡可以连接到服务器。我可以多次刷新这个水龙头,服务器每次发送一个 200。我必须重新启动服务器才能连接其他选项卡。但是,如果我刷新其他选项卡,它们会得到 404。