这里工作的一般原则叫做“服务发现”。 有许多不同的方法来实现它。 这里有几个:
- 在任何特定时间查询EC2 API以获取组中机器的列表。
- 让机器通过DNS(通过任意数量的方式)注册一个通用的RR名称; 当你检索这个名字的logging, 瞧! 你会得到所有机器的清单。
- 使用诸如zookeeper,etcd或(我个人最喜欢的)领事之类的许多“服务发现”服务之一,它可以让任何需要知道的人查询机器列表(以及可选的活性检查等)。
- 使用更高级别的特定于应用程序的机制来确定成员身份。 许多集群数据存储都是这样做的。 您也可以直接使用networkingAPI,或者在ZeroMQ之类的抽象层之上构build自己的。