分布式

  分布式计算是指系统的工作方式,主要分为数据分布式任务分布式:

  数据分布式也称为数据并行,把数据拆分后,利用多台计算机并行执行多个相同任务。优点是缩短所有任务总体执行时间,缺点是无法减少单个任务的执行时间。

  任务分布式也称为任务并行,单个串行的任务拆分成多个可并行子任务。优点是提高性能、可扩展性、可维护性,缺点是增加设计复杂性。

负载均衡

  负载均衡(Load Balance),简称LB,就是将并发的用户请求通过规则后平衡、分摊到多台服务器上进行执行,以此达到压力分摊数据并行的效果。

集群

  集群是系统在负载均衡结果后的物理表现,系统(服务)通过部署到多台服务器以达到共同提供相同的功能,可以称这一组服务为某某集群,例如Redis集群,某Web站点集群。

负载均衡器

作用

  负载均衡器的分类有很多,而他们的作用主要体现于架构要素的其中三个:可用性、性能、安全

  可用性,多台服务器的部署避免了单点故障。

  性能,一台Web站点能提供每秒4000次的并发请求,5台服务器构成的一个集群就可以达到20000。

  安全,通过反向代理到真实服务器,避免直接路由到高危Web服务,避免开放危险端口。

算法

  常用的负载均衡算法主要以下4个:

  • 加权轮询
  • 随机
  • 最少链接数
  • 哈希

分类

  从制造上主要分为软件负载硬件负载:

  软负载,包含了Nginx、LVS、HAProxy等。

  硬负载,包含了F5、Array等。

  从量级上主要分为:百万级数十万级、万级

  百万级,硬负载,例如F5、Array。

  数十万级,第四层负载,LVS、HAProxy。

  万级,第七层负载,Nginx。

  当然从成本上,硬负载绝对是土豪公司的工具,便宜的十来万RMB,贵则上百万RMB。而软负载只需要一台Linux服务器的钱就足够了。此外LVS的部署复杂度相比于Nginx会高那么一点,但是Nginx的七层负载的灵活性是四层负载的无法比拟的。