如何获取vertx中的集群nodeId?

How to get cluster nodeId in vertx?

我想获取集群中当前节点的nodeId

我在启动 vertx 时没有以编程方式配置集群,我只是在我的类路径中提供了一个名为 cluster.xml 的文件。在这种情况下,我没有 ClusterManager 对象。

我试图在 Vertx 对象中找到正确的 API,但找不到。

那么,如何获取 nodeId?

你试过了吗


Config hazelcastConfig = ConfigUtil.loadConfig(); // load config from cluster xml

ClusterManager mgr = new HazelcastClusterManager(hazelcastConfig);
mdr.nodeId

无法从 Vert.x public API 访问集群管理器实例。但是您可以将 Vert.x 对象转换为 VertxInternal:

VertxInternal vertxInternal = (VertxInternal) vertx;
ClusterManager clusterManager = vertxInternal.getClusterManager();
String nodeId = clusterManager.getNodeID();