何时使用 Vert.x 集群

When to use Vert.x cluster

我有一个包含多个模块的 java (gradle) 项目。同一台服务器上的所有模块 运行 但我希望它们是独立的,即无论模块 B 是 运行 还是停止,模块 A 都应该启动和停止,反之亦然。 每个模块都是一个 vert.x verticle,模块应该能够相互通信。 我读到,如果 Verticles 运行 在同一台机器上,创建集群 vertx 实例不是一个好习惯,但如果我不对它们进行集群,那么我会得到不同的实例,因此会有不同的事件总线。

你会推荐什么?

(1) 将verticle聚类在同一台机器上

(2) 让 Verticles 通过路由器进行通信(这是一种不好的做法吗?)

(3) 以某种方式重构项目

您可以deploy verticles to get a deployment id and also undeploy them使用相同的 ID。也就是说他们已经独立了。

最简单的方法是让它们 运行 在同一进程中通过事件总线进行通信。

您列出的选项 1 和 2 会引入不必要的延迟并使您的应用程序性能更差。