在开发语言中,我们也可以使用Python来实现负载均衡的设置,现在我们就来介绍一下这个尝试。首先我们考虑负载均衡,常用的就是反向代理的均衡设置,那么对于Python的语言实现,又有什么特别的要求呢?让我们一起来看看文章的内容吧。
最近测试一个Python项目,在性能优化过程中,决定使用Tornado作Web服务器。但Tornado是单进程线程的实现,虽然一个进程可以很好的处理并发,但毕竟还是个单线程,无法有效的使用多核CPU。
对外的端口只有一个,于是考虑使用负载均衡。首先Nginx,但发现在使用Nginx转发过程中产生大量的Time_wait。据说Nginx转发时会使用Http1.0,不确定是否由此导致。但至少使用Apache作负载均衡的时候没有这个问题。关于Time_wait,不是此文章欲述的,以下贴出 Nginx和Apache作负载均衡的配置:
Nginx.conf: http{ upstreamfrontends{ server127.0.0.1:9080; server127.0.0.1:9081; server127.0.0.1:9082; server127.0.0.1:9083; }
Apache:
编译:
./configure –prefix=/usr/local/apache –enable-so –enable-rewrite –with-mpm=prefork –enable-proxy
配置httpd.conf:
ProxyRequestsOff <Proxybalancer://higkoo> BalancerMemberhttp://127.0.0.1:9080 BalancerMemberhttp://127.0.0.1:9081 BalancerMemberhttp://127.0.0.1:9082 BalancerMemberhttp://127.0.0.1:9083 </Proxy> ProxyPass/balancer://higkoo/
当然,本文是由于在测试一Python应用时留下的。负载均衡本身并不局限与语言和应用。只要是标准的HTTP请求均可。
转载请注明:IT运维空间 » 运维技术 » Python负载均衡的尝试
发表评论