在Java中使用多个服务器

时间:2013-10-13 21:52:06

标签: java sockets networking scalable

对于大学作业,我正在使用套接字*构建网络Java应用程序。我的架构必须是可扩展的,所以我希望有多个服务器可供我的客户与之通信。

我的问题是,客户如何了解所有可用的服务器?我的第一个想法是让客户端保留(硬编码)服务器IP地址列表并从列表中选择。在这种情况下,最佳做法是什么?

*我们不能使用RMI。

2 个答案:

答案 0 :(得分:0)

让我们假设您的网络提供商的成本太高,您决定转换。轰动你的IP地址。我建议明智地使用DNS,尤其是循环DNS。

使用中央跟踪器似乎是一个好主意,但它本身必须是可扩展的,类似于Google App Engine,否则它将成为一个阻塞点。

只需为给定名称创建多个A记录,您的客户将在解析时随机选择一个。

如果您无法使用DNS,则IP列表可能会有所帮助 - 只需进行一次更改即可。所有服务器都传播列表的更新副本,如果无法访问服务器,则尝试另一个服务器,直到建立连接(并且列表同样更新)。当发现列表与现有列表不同时,客户端列表会更新。

答案 1 :(得分:0)

您可以使用RMI内容,制作主服务器和辅助服务器。

辅助服务器可能正在连续轮询主要服务器,当主服务器关闭时,辅助服务器可以在命名服务上注册。当小学回来时,它会注册回来让二级学生下来......就像那样。

关于客户端了解服务器,客户端可以使用RMI询问服务器的身份。