Amazon ec2 AmazonEC2中的分布式系统

Amazon ec2 AmazonEC2中的分布式系统,amazon-ec2,system,distributed,Amazon Ec2,System,Distributed,我计划在AmazonEC2上构建一个分布式系统 如何获取每台机器的网络IP地址(如192.xxx.x.x) 这样,当一个新节点进入系统时,其他节点会给出一个供其通信的IP地址列表 谢谢 如果“节点进入系统”,我假设它连接到某个端口。而这正是你获得IP的来源。e、 g.在爪哇: Socket socket = serverSocket.accept(); InetAddress addr = socket.getInetAddress() System.out.println("new host

我计划在AmazonEC2上构建一个分布式系统

如何获取每台机器的网络IP地址(如192.xxx.x.x)

这样,当一个新节点进入系统时,其他节点会给出一个供其通信的IP地址列表

谢谢

如果“节点进入系统”,我假设它连接到某个端口。而这正是你获得IP的来源。e、 g.在爪哇:

Socket socket = serverSocket.accept();
InetAddress addr = socket.getInetAddress()
System.out.println("new host with IP " + addr.getHostAddress() + " entered the system");
或者,您可以解析系统的FQDN

# bash
nslookup `hostname --fqdn`

# groovy
groovy -e 'println java.net.InetAddress.getLocalHost().getHostAddress()'
不过,FQDN取决于主机配置,可能解析为127.0.0.1,这不是很有帮助

作为EC2特有的第三个选项,您还可以使用AWS SDK或EC2 CLI:

# using CLI
ec2-describe-instances | grep INSTANCE | cut -f4
这将返回一个公共DNS名称列表,当从EC2内部解析时,这些名称将解析为私有IP(分别尝试将输出管道化到EC2实例或EC2外部的
xargs-n1 nslookup
)。当然,您可以过滤列表,以仅显示从您感兴趣的特殊AMI启动的实例。

如果“节点进入系统”,我假设它连接到某个端口。而这正是你获得IP的来源。e、 g.在爪哇:

Socket socket = serverSocket.accept();
InetAddress addr = socket.getInetAddress()
System.out.println("new host with IP " + addr.getHostAddress() + " entered the system");
或者,您可以解析系统的FQDN

# bash
nslookup `hostname --fqdn`

# groovy
groovy -e 'println java.net.InetAddress.getLocalHost().getHostAddress()'
不过,FQDN取决于主机配置,可能解析为127.0.0.1,这不是很有帮助

作为EC2特有的第三个选项,您还可以使用AWS SDK或EC2 CLI:

# using CLI
ec2-describe-instances | grep INSTANCE | cut -f4
这将返回一个公共DNS名称列表,当从EC2内部解析时,这些名称将解析为私有IP(分别尝试将输出管道化到EC2实例或EC2外部的
xargs-n1 nslookup
)。当然,您可以过滤列表,以仅显示从您感兴趣的特殊AMI开始的实例。

使用类似或的框架来组织节点。这将允许您在实例启动时引导它们

AmazonEC2的工作方式是,它允许您传递到每个实例——通常是某种脚本来运行命令,例如用于引导

如果自己运行这项服务有太多障碍,我建议您使用以下服务:

  • (还)
HTH

使用类似或的框架来组织节点。这将允许您在实例启动时引导它们

AmazonEC2的工作方式是,它允许您传递到每个实例——通常是某种脚本来运行命令,例如用于引导

如果自己运行这项服务有太多障碍,我建议您使用以下服务:

  • (还)
HTH

您可以编写一个程序来实现这一点,但您会发现已经存在一些工具。我会试着问你是否可以编写一个程序来实现这一点,但你会发现已经存在一些工具。我想试着问一下