负载均衡
系统性能扩展方式
scale up:垂直扩展,向上扩展,替换旧设备,使用性能更佳的设备
scale out:水平扩展,向外扩展,增加设备,并行运行多个设备一起提供服务
cluster集群:
cluster:集群,为解决某个特定问题将多台计算机组合起来一起向外提供服务,解决单体机器故障和性能
linux集群类型:
LB:load balance 负载均衡
HA:high availiablity 高可用 机器性能无故障时间SLA:99% 999% 9999%
HPC:高性能
分布式系统:
分布式存储:云盘
分布式计算:hadoop,spark
集群和分布式:
集群:集群是相同的一定数量的机器一起向外提供服务,他们的工作都是相同的;一个机器出现故障不影响服务
分布式:一定数量的机器一起向外提供服务,但是是不同的机器承担的服务不同,所有的机器提供的服务组合起来才是完整的一套服务;某个机器出现故障会影响整体的服务
集群设计原则:
可扩展性、可用性(SLA)、性能(相应时间)、容量(单位时间内的最大并发吞吐量C10K并发问题)
基础设施层面:
1、使用高性能的机器
2、多域名-DNS轮询A记录解析
3、多入口-将A记录解析到多个公网IP入口
4、多机房-同城+异地灾备
5、CDN-基于GSLB实现全局负载均衡,如DNS
业务层面:
1、分层:安全层、负载层、静态层、动态层、持久化与非持久化
2、分割:基于功能分割业务为小服务,如微服务
3、分布式:对于特殊场景的业务使用分布式计算
cluster分类(LB):
硬件:F5、Citrix netscaler、A10
软件:lvs、nginx、haproxy
基于工作协议层次划分:
传输层:通用,tcp/ip的4层进行调度
- LVS
- nginx:stream
- haproxy:mode tcp
应用层:专用,应用层有很多的协议和服务,比如http,https,fascgi,mysql
cluster相关:
会话保持:
- 同一用户调度固定的服务器,如sh算法
- 每台服务器拥有全部的session
- 专门的session服务器,如memcached,redis
HA集群实现方案:
keepalived:vrrp协议