【发布时间】: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