负载均衡的使用已经很普遍了,经过计算机集群,使网络链接、CPU、磁盘驱动器或其余资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。jquery
在web应用中,使用了两台计算机,就得用到负载均衡技术,负载均衡技术有不少应用,归纳起来可分为硬件负载和软件负载,各有优劣。硬负载在选择上比较少,通常都是大厂商定制,扩展性相对于软件来讲,不易扩展,造价很是高,目前咱们web应用使用的是A10,价格极高,不适合中小型企业。软负载相对硬负载来讲就有不少选择了,应用较多的有ngnix、Mod_proxy_balancer等,软件有很是突出的有点,开源免费,成本很是低,只要稍微懂点linux的基础知识,安装和部署很是简单,容易扩展,开源年社区有很好的支持和帮助,不像硬件,虽然能够直接咨询厂商的硬件工程师,可是这是在没过保的状况下。目前在web的搜索集群中使用了linux+ngnix的负载配置。linux
会话同步。若是会话保存在服务器,可是服务器的请求可能会被分配到不一样的服务器,此时会话没法被保证。目前项目中采用了两种解决方案的处理方式。在erp内部项目中,因为对性能没有特别高的要求,将会话指定保存到一台后台服务器中,保存乃数据库,全部的请求将会把会话写入一台服务器,这样就能保证会话同步。而在官网集群中,全站的session是被禁用掉的,所有采用cookie,以保证性能。每一个访问者的cookie-id将会保存至统一的持久化中。经过这个惟一的会话标示去识别用户,若是用户信息发生更改,有一个专门负责更新用户信息的job会将集群缓存中的用户信息更新掉,以此来保证信息同步。web
付费和硬件的选择,在稳定性上无可置疑,至少到目前为止,没见过A10挂掉的状况,并且可以支撑每一年大量的活动和双十一。目前采用的负载策略基于链接数的策略,分别在应用层和会话层去监测物理机的正常与否,跟运维要过一些资料,可是资料所有是英文文档的,因此可以了解的资料很是少。数据库