Python負載均衡的嘗試
在開發(fā)語言中,我們也可以使用Python來實現(xiàn)負載均衡的設置,現(xiàn)在我們就來介紹一下這個嘗試。首先我們考慮負載均衡,常用的就是反向代理的均衡設置,那么對于Python的語言實現(xiàn),又有什么特別的要求呢?讓我們一起來看看文章的內(nèi)容吧。
最近測試一個Python項目,在性能優(yōu)化過程中,決定使用Tornado作Web服務器。但Tornado是單進程線程的實現(xiàn),雖然一個進程可以很好的處理并發(fā),但畢竟還是個單線程,無法有效的使用多核CPU。
對外的端口只有一個,于是考慮使用負載均衡。首先Nginx,但發(fā)現(xiàn)在使用Nginx轉(zhuǎn)發(fā)過程中產(chǎn)生大量的Time_wait。據(jù)說Nginx轉(zhuǎn)發(fā)時會使用Http1.0,不確定是否由此導致。但至少使用Apache作負載均衡的時候沒有這個問題。關(guān)于Time_wait,不是此文章欲述的,以下貼出 Nginx和Apache作負載均衡的配置:
- 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/
 
當然,本文是由于在測試一Python應用時留下的。負載均衡本身并不局限與語言和應用。只要是標準的HTTP請求均可。















 
 
 

 
 
 
 