分布式
分布式计算是指系统的工作方式,主要分为数据分布式和任务分布式:
数据分布式也称为数据并行,把数据拆分后,利用多台计算机并行执行多个相同任务。优点是缩短所有任务总体执行时间,缺点是无法减少单个任务的执行时间。
任务分布式也称为任务并行,单个串行的任务拆分成多个可并行子任务。优点是提高性能、可扩展性、可维护性,缺点是增加设计复杂性。
负载均衡
负载均衡(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的七层负载的灵活性是四层负载的无法比拟的。