簡體   English   中英

如何在Apache Ignite中查找正在運行的服務器或客戶端ip及其端口

[英]How to find running server or client ip and its port in Apache Ignite

我正在設置Apache Ingine服務器的集群,正在使用以下代碼,

ipFinder.setAddresses(Arrays.asList("10.154.8.208","10.154.8.121:3389","127.0.0.1:47500..47509"));

如果我運行Java代碼n次,則使用IP地址列表中存在的IP地址及其默認/特定端口之一啟動n個服務器。

我希望Java代碼查找在哪個IP和端口服務器上啟動。 請幫助我找到這些價值。

以下是我正在使用的示例代碼,

public class IgniteClientStaticIP {

public static void main(String[] args) {

TcpDiscoverySpi spi = new TcpDiscoverySpi();

TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();

ipFinder.setAddresses(Arrays.asList("10.154.8.208","10.154.8.121:3389","127.0.0.1:47500..47509"));
spi.setIpFinder(ipFinder);
IgniteConfiguration cfg = new IgniteConfiguration();


cfg.setPeerClassLoadingEnabled(true);


cfg.setDiscoverySpi(spi);


Ignite ignite = Ignition.start(cfg);

IgniteCompute igniteCompute = ignite.compute();
igniteCompute.broadcast(() -> System.out.println("Hello World"));

}
}

正如Denis所建議的,這通常不是您要做的。 但是,我看到了必要的情況,包括自動化負載平衡器或防火牆規則。 因此,請注意...

您可以使用ClusterNode類獲取有關節點的信息。 好吧,在這種情況下, TcpDiscoveryNodeClusterNode.一個更特定的版本ClusterNode. 這是Scala,但您應該明白要點:

scala> ignite.cluster.nodes.asScala.flatMap { case x : TcpDiscoveryNode => Some(x.socketAddresses) case _ => None }
res5: Iterable[java.util.Collection[java.net.InetSocketAddress]] = ArrayBuffer([XX/192.168.1.89:47501, /0:0:0:0:0:0:0:1%lo0:47501, /127.0.0.1:47501], [XX/192.168.1.89:47500, /0:0:0:0:0:0:0:1%lo0:47500, /127.0.0.1:47500])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM