问题标签 [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.

0 投票
2 回答
280 浏览

reactive-programming - Vertx 服务代理类在另一个方法完成之前不会调用另一个方法

我已经通过事件总线实现了服务代理类,它有 2 个方法(收集和取消收集方法需要 4 到 5 分钟才能完成,因为它通过网络并从设备收集数据。

但是在收集数据之间,如果我在服务代理上调用取消,这通常会停止从设备收集数据而不是调用

cancel 方法正在等待完成collect 方法,然后request 进入cancel

我有2 个 verticles一个用于处理HTTP 请求,第二个用于收集数据

CollcetionServiceProxy 类通过 CollectionVerticle 暴露在事件总线上,我将其部署为工作人员 verticle

在部署时,如果我部署2 个 CollectionVerticle 实例, 它工作正常但我不想那样做。

如何使用单个 Verticle 集合实例解决此问题。

0 投票
1 回答
147 浏览

kotlin - vertx-lang-kotlin-coroutines 测试失败

我一直在写一个测试类:

如果 Verticle 的方法 start() 以“普通”方式编写,则 Test 肯定通过:

不同的是,如果我使用 vertx-lang-kotlin-coroutines API 实现不同的解决方案,测试会抛出 java.util.concurrent.TimeoutException

我究竟做错了什么?

0 投票
2 回答
159 浏览

microservices - 我什么时候想创建多个 Verticle(假设我在无状态微服务中使用非阻塞数据库客户端)?

假设

  • 我正在构建一个无状态微服务,它公开了一些简单的 API 端点(例如,一个通读缓存,将一个条目保存到数据库),
  • 我正在使用非阻塞数据库客户端,例如mysqlredis
  • 我总是希望我的微服务通过 HTTP 相互通信(通过将 EC2 实例放在负载均衡器后面)

问题

  1. 我什么时候要使用超过 1 个标准 Verticle(即,将整个微服务编写为单个 Verticle 并部署它的 n 个实例(n = 事件循环线程数))?添加更多的verticles不会增加序列化和上下文切换的成本吗?
  2. 假设我将微服务拆分为多个标准 Verticle(无论出于何种原因)。与部署不同比例的实例相比,部署每个实例的 n(n = 事件循环线程数)不会总是提供更好的性能。由于每个 Verticle 只是一个地址上的侦听器,这意味着每个事件循环线程都可以处理各种消息,并且它们已经是负载平衡的。
  3. 我什么时候想在集群模式下运行我的应用程序?根据文档,我觉得集群模式只有在您有多个 Verticle 时才有意义,并且当您有一个实际的集群用例时也是如此,例如,不同的 EC2 实例处理不同用户的请求以帮助处理数据局部性(比如使用点燃)

PS,即使您可以回答上述问题之一,也请提供帮助。

0 投票
1 回答
185 浏览

vert.x - Vertx 事件总线中的限制消息

由于 Vertx 中的 eventbus 是为异步消息传递而设计的,是否可以限制这些消息的处理速率?如果是这样,我们可以使用worker verticles实现还是我们必须创建一个单独的线程组。关键是事件总线可能能够排队一百万条消息(我猜是数字),在工作人员/线程下发生的后续操作不应该被淹没并最终导致某些事情失败。请撕碎一些光。

0 投票
2 回答
358 浏览

vert.x - 如何将文件上传到 vertx FileSystem,以便我可以使用 routingContext.fileUploads() 读取文件

我写了一个verticle来使用routingContext.fileUploads()从vertx文件系统中读取多部分表单数据。现在我想写一个测试用例。我正在尝试将文件上传到 vertx 文件系统,所以我可以调用我的 verticle 从文件系统中读取文件并测试我的代码。

0 投票
0 回答
2325 浏览

java - 如何修复 io.vertx.core.impl.NoStackTraceThrowable?

所以我正在为java制作一个vertx verticle,当我在intellij中运行它时它似乎开始了,但是当我制作一个shadowjar并在我的ubuntu服务器上启动它时,我得到了这个:

它以前可以正常工作,但我无法弄清楚这是什么意思。几周前我一直在使用shadowjar来部署它,它在intellij中没有给出任何错误,这个错误给出了零信息......

0 投票
1 回答
1048 浏览

java - Vertx 服务代理编译错误无法解析为类型

我正在使用 vertx 服务代理。当我尝试添加所有必需的依赖项和 package-info java 文件时。我仍然得到 vertx 编译错误无法解析为类型。从教程中我了解到它是一个生成的文件,但它不会生成。

pom.xml 如下:

数据库服务接口如下:

包信息如下:

0 投票
1 回答
439 浏览

microservices - vertx multi verticle在单个微服务中的用例是什么?

在大多数 Web 应用程序中,应用程序都构建在 vertx 中,我已经看到人们在单个微服务中创建了两个 verticles。

  • 一种是用于处理 HTTP 请求的 rest verticle。
  • 另一种是通过dao verticle 与数据库进行通信。

每当有任何 api 请求时,HTTP verticle 通过事件总线与 dao verticle 进行通信。

但是考虑到顶点是单线程的,在这里创建两个不同的顶点有什么好处。事件总线上的通信会产生不必要的开销,而我只能创建一个处理 rest 和 i/o 的 Verticle。

我可以理解在阻塞调用的情况下有一个单独的工人 Verticle 的情况。但是在非阻塞的情况下,i/o调用的用例是什么呢?

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

vert.x - Vert.x - 集群模式 - 消息缓冲

我没有使用 vert.x 的经验,只是探索,因为它看起来很有趣。

我的问题是,当我们在集群模式下使用带有 infinispan 或 hazelcast 的事件总线时,1 个 jvm 实例向一个地址发送消息,另一个作为消息消费者的 jvm 实例不可用,infinispan 会缓冲并传递当消费者出现并得到处理并回复发件人时的消息?