问题标签 [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.
java - Vertx 3 - SockJS 套接字打开被取消
我创建了一个新的 Verticle,它应该响应 HTTP 请求和 SockJS 桥接事件。基于这个问题https://stackoverflow.com/questions/41516328和 vert.x 手册https://vertx.io/docs/vertx-web/java/#_sockjs我创建了这段代码:
爪哇:
JavaScript 事件总线客户端:
HTTP 请求/响应工作正常,但 SockJS 事件不行。在网络浏览器“网络”模块中,我只看到一个 SockJS 请求(http://localhost:8080/eventbus/info)。8 秒处于“待定”状态,在此之后状态变为“关闭”(最后调用方法 onclose())。
我做错什么了吗?
deployment - 在 aws 上部署 Vert.x(最佳实践)
我是网络开发的初学者。我使用了 Vert.x 框架。我在 aws 上获得了服务器的 app.jar 文件。每次我用这个命令运行它:
但我不确定,这是正确的方式(我认为这是非专业的)。谁能告诉,最佳实践是什么?我听说,大多数应用程序都部署在 Web 应用程序容器上,例如 Tomcat、JBoss、Jetty 等。请告诉我正确的方法。
docker - Kotlin 中的 Vert.x 项目在 Docker 中部署
我有一个在 Kotlin 中用 vert.x 框架编写的项目。我构建了 jar 文件,我想通过 Docker 运行这个 jar。但是 docker 找不到我的主 Verticle 文件。
Dockerfile:
通往我的主垂直的路径
PS错误是:
java - 在 TCP 服务器中使用 vertx Vertciles 的有效方法
我正在开发一个需要能够管理多达 500 个同时连接的 TCP 服务器。它是一个简单的服务器,等待客户端建立连接。然后,它计算客户端请求的资源,并将其发送给它。
我决定使用 Vertx,而不是每个连接使用一个线程。
一位同事建议我每个连接使用一个verticle。阅读文档,我感觉这样做会违反 Vertx 的原则,并且相当于每个连接执行一个线程。
但问题是,我真的不知道如何以另一种方式做到这一点。我可以有不同的 Verticle 来处理不同的操作,但是这些操作在很短的时间内执行了很多,所以它会涉及到大量的 Verticles 创建。就性能而言,它可能会很昂贵。
所以我的问题是:我应该像我同事说的那样做吗?如果没有,您有什么建议吗?
我知道如果不确切知道服务器需要做什么,这可能很难回答,但这个问题的重点是了解应该如何使用 Vertx 以使其尽可能高效。我不希望有一个完全符合我需求的 anwser,而是建议让我走上正轨。
非常感谢!
vert.x - 用于连接 Solace VMR 服务器的 VertX 客户端实现
我们如何实现与 Solace VMR 服务器的 VertX 客户端连接?到目前为止,我们正在使用 VertX Standalone 程序连接 Solace VMR。是否有任何标准实现或模式可以用于使用 VertX Cient(如 WAS 或 Tomcat)连接 solace VMR 请建议。
java - 没有为参数 [io.vertx.ext.unit.TestContext arg0] 注册 ParameterResolver
我正在尝试为 vertx 相关的东西编写一个测试用例。
这是我的代码
收到以下错误:
org.junit.jupiter.api.extension.ParameterResolutionException:没有为可执行文件 [public static void remoteprocess.java.samples.MyJUnitTest.before(io.vertx.ext) 中的参数 [io.vertx.ext.unit.TestContext arg0] 注册的 ParameterResolver .unit.TestContext)]。在 org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameter(ExecutableInvoker.java:191) 在 org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameters(ExecutableInvoker.java:174) 在 org.junit.jupiter.engine .execution.ExecutableInvoker.resolveParameters(ExecutableInvoker.java:135) 在 org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:116) 在 org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$invokeBeforeAllMethods org.junit.jupiter.engine.execution 中的 $5(ClassTestDescriptor.java:228)。internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:86) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit。 runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner。在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206) 处运行(RemoteTestRunner.java:460) 被抑制:org.junit.jupiter.api.extension.ParameterResolutionException:没有为参数注册 ParameterResolver [io.vertx.ext.unit.TestContext arg0] 在可执行文件 [public static void remoteprocess.java.samples.MyJUnitTest.after(io.vertx.ext.unit.TestContext)] 中。在 org.junit。
请帮助解决这个问题。
hazelcast - Vertx Clustered EventBus 未收到消息
我在两个项目中有两个独立的 verticles,它们被打包为常规 jar。垂直类型是标准的。第一个 verticle 通过 eventbus.send 方法通过 rest 端点发送消息。另一个 verticle 通过 eventbus.consumer 方法接收该消息(实际上应该接受但失败)。
我通过 maven shade 插件创建了 jars,并使用 -cluster 参数运行。这两个项目都具有 hazelcast 依赖项,我在控制台日志中看到 hazelcast 集群
当 Verticle 在同一个 jar 中时,接收者 Verticle 正在接收消息。
发件人
接收者
有什么问题,有什么想法吗?
编辑
当我将 cluster.xml 添加到两个应用程序时,问题就解决了。
vert.x - Vert.x 事件总线保留消息
我正在按照vertx sockjs 示例通过 SockJS 事件总线桥传输数据。
发送代码:
消费者代码:
第一个客户端工作正常。但是,对于第二个连接的客户端,由于它订阅的是同一个 eb 地址,所以它无法获取已发送给第一个客户端的最新数据。如果数据快速传入,这将不是问题。但是如果数据点之间的时间间隔很长,那么第二个客户端会很长时间没有数据,直到下一个新的数据点到来。
那么,Vert.x 的事件总线是否能够保留消息,以便每当新客户端连接时,它可以立即获取最新数据?
我对 Vert.x 还是很陌生,所以任何评论都将不胜感激。
java - 在 vert.x 中,为什么静态方法在静态代码块之前运行?
我有一个类ConfigFactory
,它可以通过 vert.x conf 模块从 JSON 文件中给我一些配置。
但是在 Verticle 中,我使用JsonObject httpConfig = ConfigFactory.getHttpConfig();
,它会给我异常
HTTP Config get error! Something went wring during getting the config
。此时,result
是空的。
我发现静态方法getHttpConfig
在静态代码块之前运行。大约一秒钟,静态代码块将运行。那个时候,result
还不是空的。
你能帮助我吗?谢谢!