服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

集群TCP服务器,所以可以发送数据到所有的客户端

我正在开发一个实时的移动应用程序,在应用程序和服务器后端之间build立一个TCP连接。 每个用户可以发送消息给所有其他用户。 (我使用Twisted在Python中创buildTCP服务器,为应用程序/后端之间的通信创build自己的“协议”并将其托pipe在Amazon Web Services上 。) 目前我正在试图使后端可扩展(和可靠)。 据我所知,系统可以通过升级到更大的服务器(可能会变得非常有限),或者通过在集群configuration中添加新的服务器来处理更多的用户 – 即有多个服务器位于负载均衡器之后, 1数据库,他们都访问。 我已经勾勒出这个粗糙的架构: 但是,如果Red用户向所有其他连接的用户发送消息呢? Red的服务器与Red有TCP连接,但是没有与Green连接。 我可以想办法解决这个问题: 每台服务器可以有一个开放的TCP(或SSL)连接与其他服务器。 当一个服务器想要发送一条消息给所有的用户时,它只是把它传递给其他服务器。 一个logging可以保存在哪个服务器在线的数据库中(和他们的IP地址),其中一个服务器可以是一个老板 – 即决定是否其他人正在运行,如果不是,可以从数据库中删除它们(如果一台服务器上了,失去了与老板的连接,它可以检查数据库,看看是否已经被删除,如果有的话,重新启动 – 否则可以认为老板已经closures了。 显然这需要改进,但显示了一般原则。 或者,我不确定这是否可能( – 绝对看起来像我的一厢情愿的想法): 也许用户可以连接到一个盒子或路由器,所有的服务器可以通过它的所有用户信息? 如果您知道如何有效地对TCP服务器进行群集,或提供解决scheme的devise模式,或者有任何意见,那么我将非常感激。 谢谢 :-)