负载均衡

负载均衡的使用已经很广泛了,通过计算机集群,使网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。

负载均衡分为硬负载和软负载:

硬负载均衡

    硬负载均衡,也就是使用专用的负载均衡设备。主流的硬负载均衡器有如下几种:

    F5:最主流的硬负载均衡器。便宜的20万以上,贵的100多万。

    深信服:乞丐版低配12万元起价。

    A10:基本都在100万元以上。

    Array:16-100万。

    看这价格就知道,硬负载均衡,一般的中小公司,都会被价格折磨、然后犹豫、最后放弃。

    软负载均衡

    软软负载均衡,也就是,不使用专用的负载均衡设备,而是通过软件来实现负载均衡。常用的有如下几种:

    DNS:最原始的负载均衡方式,名字就已经说明了一切,不用细说了。

    LVS:最常用的软件负载均衡。我见过的国内百万级用户的架构,基本都是靠它顶的。

    Nginx:也是现在流行的、常用的负载均衡方案之一。



在web应用中,使用了两台计算机,就得用到负载均衡技术,负载均衡技术有很多应用,概括起来可分为硬件负载和软件负载,各有优劣。硬负载在选择上比较少,一般都是大厂商定制,扩展性相对于软件来说,不易扩展,造价非常高,目前我们web应用使用的是A10,价格极高,不适合中小型企业。软负载相对硬负载来说就有很多选择了,应用较多的有ngnix、Mod_proxy_balancer等,软件有非常突出的有点,开源免费,成本非常低,只要稍微懂点linux的基础知识,安装和部署非常简单,容易扩展,开源年社区有很好的支持和帮助,不像硬件,虽然可以直接咨询厂商的硬件工程师,但是这是在没过保的情况下。目前在web的搜索集群中使用了linux+ngnix的负载配置。

会话同步。如果会话保存在服务器,但是服务器的请求可能会被分配到不同的服务器,此时会话无法被保证。目前项目中采用了两种解决方案的处理方式。在erp内部项目中,由于对性能没有特别高的要求,将会话指定保存到一台后台服务器中,保存乃数据库,所有的请求将会把会话写入一台服务器,这样就能保证会话同步。而在官网集群中,全站的session是被禁用掉的,全部采用cookie,以保证性能。每个访问者的cookie-id将会保存至统一的持久化中。通过这个唯一的会话标示去识别用户,如果用户信息发生更改,有一个专门负责更新用户信息的job会将集群缓存中的用户信息更新掉,以此来保证信息同步。

付费和硬件的选择,在稳定性上不容置疑,至少到目前为止,没见过A10挂掉的情况,而且能够支撑每年大量的活动和双十一。目前采用的负载策略基于连接数的策略,分别在应用层和会话层去监测物理机的正常与否,跟运维要过一些资料,但是资料全部是英文文档的,所以能够了解的资料非常少。


你可能感兴趣的:(负载均衡,ngnix,硬负载,软负载)