gpt4 book ai didi

java - 如何在 Apache Ignite 中查找正在运行的服务器或客户端 IP 及其端口

转载 作者:行者123 更新时间:2023-12-02 09:31:47 27 4
gpt4 key购买 nike

我正在设置 Apache Ingine 服务器集群,我使用下面的代码,

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

如果我运行 Java 代码 n 次,n 台服务器启动,使用 IP 地址及其默认/特定端口之一出现在 IP 列表中地址。

我希望 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 的更具体版本。这是 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])

关于java - 如何在 Apache Ignite 中查找正在运行的服务器或客户端 IP 及其端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57902530/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com