20 | 高性能负载均衡:分类及架构

高性能集群本质:增加服务器提升系统计算能力。同样输入和逻辑,服务器相同输出。复杂度是分配策略(为任务选择合适算法)

负载均衡器:有的基于负载考虑,有的基于性能(吞吐量、响应时间),有基于业务。

3 种:DNS 负载均衡、硬件、软件负载均衡

一、DNS 负载均衡

地理级别。例如,北方访问北京机房,南方访问深圳。本质是 DNS 解析同域名返回不同 IP 地址。www.baidu.com,北方用户获取地址61.135.165.224(北京机房IP),南方14.215.177.38(深圳机房IP)

20 | 高性能负载均衡:分类及架构_第1张图片

优点

简单、成本低:负载均衡交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。

就近访问,提升访问速度:加快访问速度,改善性能。

缺点

更新不及时:DNS 缓存时间长,修改 DNS 配置后,很多用户会继续访问修改前的 IP,访问会失败,不能正常使用,达不到负载均衡

扩展性差控制权域名商,无法定制、扩展

分配策略比较简单:算法少;不区分服务器差异,无法感知服务器状态。

对于时延和故障敏感,实现了 HTTP-DNS 功能, HTTP 协议实现私有DNS 系统,和通用的 DNS 优缺点正好相反。

二、硬件负载均衡

和路由器、交换机类似,用于负载均衡基础网络设备。典型:F5 和 A10强劲、功能强大价格都不便宜,“土豪”公司才用

优点

功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。

性能强大:对比一下,软件负载均衡支持到 10 万级并发已经很厉害了,硬件负载均衡可以支持 100 万以上的并发。

稳定性高:商用硬件负载均衡,经过了良好的严格测试,经过大规模使用,稳定性高。

支持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防火墙、防 DDoS 攻击等安全功能。

缺点

贵:最普通的一台 F5 就是一台“马 6”,好一点的就是“Q7”了。

扩展能力差:硬件设备,可根据业务配置,无法进行扩展和定制。

三、软件负载均衡

Nginx 和 LVS,Nginx 7 层负载均衡,LVS Linux 内核4 层负载均衡。区别就在于协议灵活性Nginx 支持 HTTP、E-mail 协议;几乎所有应用都可以做,例如,聊天、数据库等。

软硬件区别在性能,Ngxin 性能万级,Linux 装 Nginx 5 万 / 秒;LVS 十万级80 万 / 秒;F5 百万级,200 到 800 万 / 秒都有。当然,优势便宜,普通Linux 1 万元左右

20 | 高性能负载均衡:分类及架构_第2张图片
Nginx 负载均衡架构

优点

简单:部署、维护简单。

便宜:买个 Linux 服务器,装上软件

灵活4 层和 7 层负载均衡可以根据业务进行选择;也可以根据业务进行比较方便的扩展,例如,可以通过 Nginx 的插件来实现业务的定制化功能。

缺点(和硬件相比)

性能一般:不具备防火墙和防 DDoS 攻击等安全功能。

四、负载均衡典型架构

硬件负载实现集群软件负载均衡用于实现机器负载均衡。

20 | 高性能负载均衡:分类及架构_第3张图片

三层。

地理:部署北京、广州、上海三个机房

集群:广州机房用F5 设备,到用户请求后,进行集群级别负载均衡,假设 F5 将用户请求发给了“广州集群 2”。

机器:广州集群 2 的负载均衡用的是 Nginx,Nginx 收到用户请求后,将用户请求发送给集群里面的某台服务器,服务器处理用户的业务请求并返回业务响应。

Nginx 简单足够用

小结

设计日活跃1000 万论坛的负载均衡集群,方案是什么?理由?

评论1

日活千万的论坛,这个流量不低了。 

1、首先,流量评估

1000万DAU,换算成秒级,平均约等于116。 

考虑每个用户操作次数,假定10,换算成平均QPS=1160。 峰值QPS=11600(按10倍算) 

考虑静态资源、图片资源、服务拆分等,流量放大效应,假定10,QPS*10=116000。 

2、容量规划。 

高可用、异地多活,QPS*2=232000。 

半年增长,QPS*1.5=348000。 

3、最后方案

三级导流。 

第一级,DNS,确定机房,目前量级,可不考虑。 

第二级,确定集群,扩展优先,则选Haproxy/LVS稳定优先则选F5。 

第三级,Nginx+KeepAlived,确定实例。

同样1000万日活用户,不同业务特点的QPS差异很大,例如抖音的访问量会明显高于支付业务,论坛业务明显高于工具类业务

你可能感兴趣的:(20 | 高性能负载均衡:分类及架构)