一个应用程序在多个服务器

时间:2014-10-23 21:44:05

标签: ajax java-ee websocket load-balancing

我正在开发一个需要使用websockets的基于Web的应用程序,以便用户能够实时查看更新。

然而,有些事情让我感到不安。如果有太多客户端同时使用该应用程序,则需要运行相同应用程序的第二台服务器,以便将一些用户重定向到该应用程序。

然后,如何在两台服务器之一上进行更新,以便在另一台服务器上看到?我是否需要在它们之间编写一个tcp连接并在发生某些更新时互相发送消息???

1 个答案:

答案 0 :(得分:2)

如果您的用户连接到两台服务器(例如某些用户连接到一台服务器,而某些用户连接到另一台服务器),并且您想要从其中一台服务器向所有连接的用户广播消息,那么您将需要让服务器发起消息告诉其他服务器向所有连接的用户广播消息。所以,是的,必须连接两台服务器才能交换这些更新命令。

如果您有N台服务器(可能N甚至随时间变化),那么您可能会指定一台与所有其他服务器保持连接的主服务器。然后,当任何通知将被发送给所有连接的用户时,服务器将简单地通知主服务器,主服务器然后将通知所有将向其所有用户广播的服务器。当每台服务器启动时,它只是连接到一台主服务器,而且它现在已经完成了所有这些。

当然,如果您只有两台服务器,则不需要主服务器概念。每个都可以连接到另一个。