admin

Python负载均衡的尝试

admin 运维技术 2022-11-15 487浏览 0

在开发语言中,我们也可以使用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请求均可。

继续浏览有关 网络 的文章
发表评论