所以我有一个为客户提供服务的扭曲套接字服务器,最终我需要添加更多服务器。问题是与服务器的连接是唯一的,无法在多个服务器实例之间共享。
如果服务器位于负载均衡器后面,或者单个聊天中的多个用户跨越多个服务器实例,则会出现问题,因为聊天消息无法成功发送给所有人。
我如何解决这个问题?
答案 0 :(得分:0)
这可能是一项艰巨的任务,因为可以根据底层协议(如Web服务器的http)来改善平衡负载。
您是否正在尝试为基本上任何基于套接字的应用程序设计负载平衡系统?我的意思是在多个服务器之间分配消息是一回事,确保正确的同步,为任何通信协议构建动态自平衡系统是另一回事。
要构建负载均衡器,您可以使用“TCP代理”,如HAProxy(http://www.haproxy.org/)
要处理应用程序服务器实例(负载平衡服务器后面)之间的通信,可以使用zeromq(http://zeromq.org/)或rabbitmq(http://www.rabbitmq.com/)之类的消息传递。你会在那里找到一些常见的架构模式。
zeromq和rabbitmq都有python库,因此在基于twisted的服务器中实现并不太难。