硬负载OR软负载

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

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

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

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

原文:http://www.jquery09.com/archives/245

你可能感兴趣的:(硬负载OR软负载)