【问题标题】:How to Loadbalance requests using Twisted Framework?如何使用 Twisted Framework 负载均衡器请求?
【发布时间】:2015-08-12 07:52:45
【问题描述】:

我一直在使用以下扭曲的 python 脚本来侦听端口 8080 上的请求并将请求转发到特定 IP。

这是脚本:

class ServerProtocol(protocol.Protocol):
    def __init__(self):
        self.buffer = None
        self.client = None

    def connectionMade(self):
        factory = protocol.ClientFactory()
        factory.protocol = ClientProtocol
        factory.server = self

        reactor.connectTCP('x.x.x.x', 80, factory)

    def dataReceived(self, data):
        if (self.client != None):
            self.client.write(data)
        else:
            self.buffer = data

    def write(self, data):
        self.transport.write(data)
        print 'Server: ' + data.encode('hex')

class ClientProtocol(protocol.Protocol):
    def connectionMade(self):
        self.factory.server.client = self
        self.write(self.factory.server.buffer)
        self.factory.server.buffer = ''

    def dataReceived(self, data):
        self.factory.server.write(data)

    def write(self, data):
        self.transport.write(data)
        print 'Client: ' + data.encode('hex')

def main():

    factory = protocol.ServerFactory()
    factory.protocol = ServerProtocol

    reactor.listenTCP(8080, factory)
    reactor.run()

if __name__ == '__main__':
    main()

在 ServerProtocol 类中,建立连接(请求)后,我将请求转发到端口 80 上的远程 IP x.x.x.x。现在,我想将传入的请求负载平衡到多个远程 IP(x.x.x.x,y.y.y.y,z.z.z.z)上端口 80。我查看了 txLoadBalancer,但找不到任何适合它的示例。

有没有其他方法可以使用扭曲框架来做到这一点?

(注意:我想以编程方式对请求进行负载平衡,请不要建议我使用第三方负载平衡器)

【问题讨论】:

    标签: python python-2.7 twisted twisted.web


    【解决方案1】:

    所以我认为你需要用两个脚本分割你的架构。 第一个将是负载平衡器,其他将是简单的工作人员。

    或者您可以使用任何其他负载均衡器,例如 haproxy

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 1970-01-01
      • 2015-01-22
      • 2021-12-07
      • 2013-12-09
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      相关资源
      最近更新 更多