想实现高可用?先搞定负载均衡原理( 四 )


  • 支持虚拟主机 。
  • 支持 Session 保持,Cookie 引导 。
  • 通过指定的 URL 来检测应用服务器的状态 。
  • 支持 TCP/HTTP 协议转发 。
Nginx
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行 。
Nginx 特点是:
  • 工作在网络的 4/7 层,对 HTTP 应用做负载均衡策略,如:域名、目录结构 。
  • 对网络的稳定性依赖小,可以区分内网和外网的访问 。
  • 安装和配置相对简单 。
  • 能承受很高负载且稳定,处理的流量依赖于按照 Nginx 服务器的配置 。
  • 可以检测服务器的问题,可以对服务器返回的信息进行处理和过滤,避免让无法工作的服务器响应请求 。
  • 对请求可以进行异步处理 。
  • 支持 HTTP、HTTPS 和 EMAIL 。
网络负载均衡的技术选型
既然上面对软/硬件负载均衡有了总体的了解,那么按照“技术服务业务”的原则,在业务发展的不同阶段,如何使用这两类负载均衡技术呢?
发展阶段
企业业务从 0 到 1,从无到有,数据量和访问量都不大 。Nginx 或 HAProxy 进行单点的负载均衡就已经足够了 。
这阶段刚刚采用多台应用服务器、数据库,需要一定的负载均衡做支撑 。由于业务量不大,所以没有专业的维护团队来维护,也没有大规模的网站部署的需求 。
因此 Nginx 或 HAproxy 是第一选择,因为其上手快,配置容易,在七层之上利用 HTTP 协议就能满足要求了 。
扩张阶段
随着业务量增大,用户访问和交易量也在逐步增加,这时单点的 Nginx 或 HAProxy 已经无法满足之前的需求了 。
使用 LVS 或者硬件负载均衡(F5/Array)就是架构师需要考虑的问题了,Nginx 此时就作为 LVS 或者硬件负载均衡(F5/Array)的节点来处理 。
软件负载均衡+硬件负载均衡的架构配置在这个阶段就需要考虑了,也是对架构设计者的挑战 。
成熟阶段
随着公司业务扩张到达顶峰,之前的网络服务已经升级成主流服务产品,需要考虑在开源产品上进行业务定制,所以开源的 LVS,已经成为首选 。其在深度定制之后依旧会和硬件负载均衡器配合完成业务服务 。
总结
今天内容比较多,总结下来,三句话:
  • 硬件和软件负载均衡,分别工作在“接入层”和“代理层” 。
  • 一个专注于网络,负责多链路,防火墙以及服务器的负载均衡,例如:F5 BIG-IP 。
  • 另一个偏向于业务,主要功能是反向代理,动态代理,缓存,限流,例如:LVS,Nginx,HAProxy 。
作者:崔皓
简介:十六年开发和架构经验,曾担任过惠普武汉交付中心技术专家,需求分析师,项目经理,后在创业公司担任技术/产品经理 。善于学习,乐于分享 。目前专注于技术架构与研发管理 。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】




推荐阅读