我想获取集群中当前节点的nodeId。
当我启动vertx时,我没有以编程方式配置集群,我只是在类路径上提供了一个名为cluster.xml的文件。在这种情况下,我没有ClusterManager对象。
我试图在Vertx对象中找到正确的API,但找不到。
那么,如何获取nodeId?
无法从Vert.x公共API访问集群管理器实例。但是您可以将Vert.x对象强制转换为VertxInternal
:
VertxInternal vertxInternal = (VertxInternal) vertx;
ClusterManager clusterManager = vertxInternal.getClusterManager();
String nodeId = clusterManager.getNodeID();
你试过吗
Config hazelcastConfig = ConfigUtil.loadConfig(); // load config from cluster xml
ClusterManager mgr = new HazelcastClusterManager(hazelcastConfig);
mdr.nodeId