对于一项大学作业,我正在使用套接字* 构建一个网络 Java 应用程序。我的架构必须是可扩展的,因此我希望有多个服务器可供我的客户进行通信。
我的问题是,客户端如何知道所有可用的服务器?我的第一个想法是让客户端保留服务器 IP 地址的(硬编码)列表并从列表中进行选择。在这种情况下,最佳实践是什么?
*我们不能使用 RMI。
最佳答案
假设您的网络提供商的成本太高,您决定更换。繁荣你的IP地址。我建议明智地使用 DNS,尤其是循环 DNS。
使用中央跟踪器似乎是个好主意,但它本身必须是可扩展的,类似于 Google App Engine,否则它将成为一个瓶颈。
只需为给定名称创建多个 A 记录,您的客户就会在解析时随机选择一个记录。
如果您无法使用 DNS,IP 列表可能会有所帮助 - 只需进行一次更改即可。所有服务器都会循环更新列表的副本,如果无法到达某个服务器,则会尝试另一个服务器,直到建立连接(列表也会同样更新)。当发现该列表与现有列表不同时,就会更新客户的列表。
关于java - 在 Java 中使用多个服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350701/