【问题标题】:using multiple twisted socket servers together一起使用多个双绞插座服务器
【发布时间】:2015-01-26 22:48:43
【问题描述】:

所以我有一个为客户端提供服务的单一扭曲套接字服务器,最终我需要添加更多服务器。问题是到服务器的连接是唯一的,无法在多个服务器实例之间共享。

如果服务器位于负载平衡器之后,或者来自单个聊天的多个用户跨多个服务器实例,则会出现问题,因为聊天消息不会成功发送给所有人。

我该如何解决这个问题?

【问题讨论】:

    标签: python sockets twisted


    【解决方案1】:

    这可能是一项艰巨的任务,因为可以根据底层协议(例如用于 Web 服务器的 http)来改进平衡负载。

    您是否正在尝试为基本上任何基于套接字的应用程序设计负载平衡系统?我的意思是,在多个服务器之间发送消息,确保正确同步是一回事,为任何通信协议构建动态自平衡系统是另一回事。

    要构建负载均衡器,您可以使用“TCP 代理”,例如 HAProxy (http://www.haproxy.org/)

    要处理应用服务器实例之间的通信(在负载平衡服务器之后),您可以使用 zeromq (http://zeromq.org/) 或 rabbitmq (http://www.rabbitmq.com/) 之类的消息传递。你会在那里找到一些常见的架构模式。

    zeromq 和 rabbitmq 都有 python 库,因此在基于 twisted 的服务器中实现并不难。

    【讨论】:

    • 负载平衡不是问题。如果多个用户正在通信并且他们碰巧连接到不同的服务器,则消息无法相互到达,因为无法在服务器之间共享连接。
    • 您必须在这些服务器之间建立连接;这可以使用 zeromq 轻松实现
    • @tipu 你可以尝试使用 fanout rabbitmq exchange 并将所有消息发送到所有队列,这样每个人都可以看到所有内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 2018-12-15
    • 2017-03-09
    • 2017-01-04
    • 1970-01-01
    • 2017-04-29
    相关资源
    最近更新 更多