问题标签 [vertx-eventbus]
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.
reactive-programming - Vertx 服务代理类在另一个方法完成之前不会调用另一个方法
我已经通过事件总线实现了服务代理类,它有 2 个方法(收集和取消)收集方法需要 4 到 5 分钟才能完成,因为它通过网络并从设备收集数据。
但是在收集数据之间,如果我在服务代理上调用取消,这通常会停止从设备收集数据而不是调用。
cancel 方法正在等待完成collect 方法,然后request 进入cancel。
我有2 个 verticles一个用于处理HTTP 请求,第二个用于收集数据。
CollcetionServiceProxy 类通过 CollectionVerticle 暴露在事件总线上,我将其部署为工作人员 verticle。
在部署时,如果我部署2 个 CollectionVerticle 实例, 它工作正常但我不想那样做。
如何使用单个 Verticle 集合实例解决此问题。
kotlin - vertx-lang-kotlin-coroutines 测试失败
我一直在写一个测试类:
如果 Verticle 的方法 start() 以“普通”方式编写,则 Test 肯定通过:
不同的是,如果我使用 vertx-lang-kotlin-coroutines API 实现不同的解决方案,测试会抛出 java.util.concurrent.TimeoutException
我究竟做错了什么?
microservices - 我什么时候想创建多个 Verticle(假设我在无状态微服务中使用非阻塞数据库客户端)?
假设
- 我正在构建一个无状态微服务,它公开了一些简单的 API 端点(例如,一个通读缓存,将一个条目保存到数据库),
- 我正在使用非阻塞数据库客户端,例如mysql或redis和
- 我总是希望我的微服务通过 HTTP 相互通信(通过将 EC2 实例放在负载均衡器后面)
问题
- 我什么时候要使用超过 1 个标准 Verticle(即,将整个微服务编写为单个 Verticle 并部署它的 n 个实例(n = 事件循环线程数))?添加更多的verticles不会增加序列化和上下文切换的成本吗?
- 假设我将微服务拆分为多个标准 Verticle(无论出于何种原因)。与部署不同比例的实例相比,部署每个实例的 n(n = 事件循环线程数)不会总是提供更好的性能。由于每个 Verticle 只是一个地址上的侦听器,这意味着每个事件循环线程都可以处理各种消息,并且它们已经是负载平衡的。
- 我什么时候想在集群模式下运行我的应用程序?根据文档,我觉得集群模式只有在您有多个 Verticle 时才有意义,并且当您有一个实际的集群用例时也是如此,例如,不同的 EC2 实例处理不同用户的请求以帮助处理数据局部性(比如使用点燃)
PS,即使您可以回答上述问题之一,也请提供帮助。
vert.x - Vertx 事件总线中的限制消息
由于 Vertx 中的 eventbus 是为异步消息传递而设计的,是否可以限制这些消息的处理速率?如果是这样,我们可以使用worker verticles实现还是我们必须创建一个单独的线程组。关键是事件总线可能能够排队一百万条消息(我猜是数字),在工作人员/线程下发生的后续操作不应该被淹没并最终导致某些事情失败。请撕碎一些光。
vert.x - 如何将文件上传到 vertx FileSystem,以便我可以使用 routingContext.fileUploads() 读取文件
我写了一个verticle来使用routingContext.fileUploads()从vertx文件系统中读取多部分表单数据。现在我想写一个测试用例。我正在尝试将文件上传到 vertx 文件系统,所以我可以调用我的 verticle 从文件系统中读取文件并测试我的代码。
java - 如何修复 io.vertx.core.impl.NoStackTraceThrowable?
所以我正在为java制作一个vertx verticle,当我在intellij中运行它时它似乎开始了,但是当我制作一个shadowjar并在我的ubuntu服务器上启动它时,我得到了这个:
它以前可以正常工作,但我无法弄清楚这是什么意思。几周前我一直在使用shadowjar来部署它,它在intellij中没有给出任何错误,这个错误给出了零信息......
java - Vertx 服务代理编译错误无法解析为类型
我正在使用 vertx 服务代理。当我尝试添加所有必需的依赖项和 package-info java 文件时。我仍然得到 vertx 编译错误无法解析为类型。从教程中我了解到它是一个生成的文件,但它不会生成。
pom.xml 如下:
数据库服务接口如下:
包信息如下:
microservices - vertx multi verticle在单个微服务中的用例是什么?
在大多数 Web 应用程序中,应用程序都构建在 vertx 中,我已经看到人们在单个微服务中创建了两个 verticles。
- 一种是用于处理 HTTP 请求的 rest verticle。
- 另一种是通过dao verticle 与数据库进行通信。
每当有任何 api 请求时,HTTP verticle 通过事件总线与 dao verticle 进行通信。
但是考虑到顶点是单线程的,在这里创建两个不同的顶点有什么好处。事件总线上的通信会产生不必要的开销,而我只能创建一个处理 rest 和 i/o 的 Verticle。
我可以理解在阻塞调用的情况下有一个单独的工人 Verticle 的情况。但是在非阻塞的情况下,i/o调用的用例是什么呢?
vert.x - 消息在 2 个不同 Vertx 实例下的 2 个顶点之间传递。是否可以?
我正在尝试使使用 2 个不同 Vert.x 实例部署的 2 个 Verticle(X,Y)之间的通信成为可能。
X 在“地址”上发送消息 eventbus().send("Address", message, replyHandler)
Y可以在同一个地址上收听吗?eventbus().localConsumer("Address", eventHandler)
vert.x - Vert.x - 集群模式 - 消息缓冲
我没有使用 vert.x 的经验,只是探索,因为它看起来很有趣。
我的问题是,当我们在集群模式下使用带有 infinispan 或 hazelcast 的事件总线时,1 个 jvm 实例向一个地址发送消息,另一个作为消息消费者的 jvm 实例不可用,infinispan 会缓冲并传递当消费者出现并得到处理并回复发件人时的消息?