Python負(fù)載均衡的嘗試
在開發(fā)語(yǔ)言中,我們也可以使用Python來實(shí)現(xiàn)負(fù)載均衡的設(shè)置,現(xiàn)在我們就來介紹一下這個(gè)嘗試。首先我們考慮負(fù)載均衡,常用的就是反向代理的均衡設(shè)置,那么對(duì)于Python的語(yǔ)言實(shí)現(xiàn),又有什么特別的要求呢?讓我們一起來看看文章的內(nèi)容吧。
最近測(cè)試一個(gè)Python項(xiàng)目,在性能優(yōu)化過程中,決定使用Tornado作Web服務(wù)器。但Tornado是單進(jìn)程線程的實(shí)現(xiàn),雖然一個(gè)進(jìn)程可以很好的處理并發(fā),但畢竟還是個(gè)單線程,無法有效的使用多核CPU。
對(duì)外的端口只有一個(gè),于是考慮使用負(fù)載均衡。首先Nginx,但發(fā)現(xiàn)在使用Nginx轉(zhuǎn)發(fā)過程中產(chǎn)生大量的Time_wait。據(jù)說Nginx轉(zhuǎn)發(fā)時(shí)會(huì)使用Http1.0,不確定是否由此導(dǎo)致。但至少使用Apache作負(fù)載均衡的時(shí)候沒有這個(gè)問題。關(guān)于Time_wait,不是此文章欲述的,以下貼出 Nginx和Apache作負(fù)載均衡的配置:
- Nginx.conf:
- http {
- upstream frontends {
- server 127.0.0.1:9080;
- server 127.0.0.1:9081;
- server 127.0.0.1:9082;
- server 127.0.0.1:9083;
- }
Apache:
編譯:
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --with-mpm=prefork --enable-proxy
配置httpd.conf:
- ProxyRequests Off
- <Proxy balancer://higkoo>
- BalancerMember http://127.0.0.1:9080
- BalancerMember http://127.0.0.1:9081
- BalancerMember http://127.0.0.1:9082
- BalancerMember http://127.0.0.1:9083
- </Proxy>
- ProxyPass / balancer://higkoo/
當(dāng)然,本文是由于在測(cè)試一Python應(yīng)用時(shí)留下的。負(fù)載均衡本身并不局限與語(yǔ)言和應(yīng)用。只要是標(biāo)準(zhǔn)的HTTP請(qǐng)求均可。