使用服务器集群,结合负载均衡器,可以提高系统并发访问量。通常会有两种负载均衡的方式:硬件方式和软件方式。以硬件作负载均衡器的方式,成本较高,所以经常使用软件作为负载均衡器。具体有哪些硬件、软件可以作为负载均衡器?负载均衡的具体过程是什么样?有哪些负载均衡而产生的特殊问题?在系统设计、开发阶段分别应该注意什么问题?这些问题还需要后续深入研究。
使用Apache作为WebLogic集群负载均衡器是一种很常见的系统架构方式,以下就对自己前一段时间对这个一过程的搭建作总结。
整体过程:
1、作系统集群规划。
2、安装WebLogic,一般都是在图形用户界面下安装的。
3、安装Apache,需要加载代理相关的模块,需要进行配置(config)、编译(make)、
安装(make install)。
./configure --prefix=/usr/local/httpd --enable-so --enable-proxy --enable-proxy-ajp --enable-proxy-http --enable-proxy-ftp --enable-proxy-connect --enable-proxy-balancer
4、配置WebLogic集群管理服务器,并启动管理控制台。
5、配置WebLogic从服务器,并启动。
6、使用管理控制台部署web应用。
7、修改Apache安装目录下的httpd.conf,增加反向代理、负载均衡成员及策略、粘性session等信息
#Actual balancing settings with two members of balancer group. Balancer is accessed by balancer://lb link.#ProxySet lbmethod sets balancer load-balance method as byrequest to perform weighted request counting.#loadfactor is normalized weighted load applied to the worker. I set it to 50/50 to equal balancing between nodes.#route is a value appended to session id. Usually used with inside balancers, for instance, when we need to used predefined requests direction using subsequent balancers.ProxyRequests OffProxyPass / balancer://mycluster/ stickySession=JSESSIONIDProxyPassReverse / balancer://mycluster/<Proxy balancer://mycluster>BalancerMember http://192.168.21.197:7003/ loadfactor=50 route=r1BalancerMember http://192.168.21.198:7003/ loadfactor=50 route=r2ProxySet lbmethod=bytraffic</Proxy>
loadfactor表示请求的权值,该值默认为1,可以将该值设置为1到100之间的任何值。lbmethod表示负载均衡的算法,lbmethod可能的取值有:lbmethod=byrequests 按照请求次数均衡(默认)lbmethod=bytraffic 按照流量均衡lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
8、启动Apache服务器,测试集群环境是否能够正常访问。停止各从服务器,检查系统
是否依然能够正常访问。
疑问:
Apache实现负载均衡是基于其内部的代理模块(mod_proxy),基于不同的算法将请求分发给不同的集群成员,以提高系统的并发访问效率。有些问题还需要进一步研究:如何解释正向代理和反向代理?方向代理的负载均衡算法具体有哪些种?各种负载均衡算法分别适应哪些不同的应用场景?在使用Apache作为负载均衡器的时候有哪些具体的问题?如何优化Apache以进一步提高其作为负载均衡器的作用?