20 | 高性能负载均衡:分类及架构
该思维导图由 AI 生成,仅供参考
负载均衡分类
- 深入了解
- 翻译
- 解释
- 总结
负载均衡是提升系统整体处理性能的关键设计,通过增加更多服务器来提升计算能力。本文介绍了负载均衡的分类及架构,包括DNS负载均衡、硬件负载均衡和软件负载均衡。DNS负载均衡通过DNS解析实现地理级别的负载均衡,简单成本低,但存在更新不及时和扩展性差的缺点。硬件负载均衡设备功能强大、性能高,但价格昂贵且扩展能力有限。软件负载均衡通过负载均衡软件实现,如Nginx和LVS,性能一般但简单便宜,灵活性强。不同的负载均衡方式各有优缺点,需根据业务需求和实际情况选择适合的负载均衡方案。文章还介绍了负载均衡的典型架构,提出了组合使用不同负载均衡方式的原则,并以实例说明了这种组合方式的应用。最后,留下了一个思考题,引发读者对负载均衡设计的深入思考。整体而言,本文通过清晰的分类和架构介绍,为读者提供了对负载均衡技术的全面了解和思考。
《从 0 开始学架构》,新⼈⾸单¥68
全部留言(68)
- 最新
- 精选
- 鹅米豆发日活千万的论坛,这个流量不低了。 1、首先,流量评估。 1000万DAU,换算成秒级,平均约等于116。 考虑每个用户操作次数,假定10,换算成平均QPS=1160。 考虑峰值是均值倍数,假定10,换算成峰值QPS=11600。 考虑静态资源、图片资源、服务拆分等,流量放大效应,假定10,QPS*10=116000。 2、其次,容量规划。 考虑高可用、异地多活,QPS*2=232000。 考虑未来半年增长,QPS*1.5=348000。 3、最后,方案设计。 三级导流。 第一级,DNS,确定机房,以目前量级,可以不考虑。 第二级,确定集群,扩展优先,则选Haproxy/LVS,稳定优先则选F5。 第三级,Nginx+KeepAlived,确定实例。
作者回复: 思路不错👍👍
2018-06-1225386 - 无聊夫斯基我还是不是很理解TPS和QPS具体的区别
作者回复: T=transaction,代表写请求 Q=query,代表读请求
2018-08-27487 - 孙振超这篇文章最大的收获是分析问题的思路,从dau出发,结合业务的特点,计算出来总的qps和tps,而后再根据通常规律计算出qps和tps的峰值,加上一定的未来发展空间和高可用冗余,结合单机能够支撑的qps和tps量,就可以计算出来整个集群的规模,有了这些数据就可以制定出比较合理的负载均衡的策略,而不是无的放矢,凭空猜测。
作者回复: 最常用的方式
2018-07-21255 - ant日活跃用户1000万应该就是国家级应用了,面向全国活跃或者全球用户,比如最大的Xxx网站github。这个时候钱应该都不是问题了。我觉得可以考虑异地多机房部署。这样导流之后每个机房的日活就少很多。其实我在想如果在每个机房不加入负载硬件用多个ngnix集群来实现,每个ngnix上会有我们自定义的路由算法。ngnix也架设多层,逐层导流,比如我们一个机房设计承受200万,那么我们可以架设3层ngnix,第一层基于自己的路由算法导流到第2层ngnix。第2层又导流到第3层。为了避免ngnix单点,每一层ngnix部署多。这样导流下流每台服务器所承认的访问不会很多。不知道这样的设计能不能达到要求,老师点评下
作者回复: 可以达到,但有点复杂,nginx做级联不太合适,因为顶层的nginx性能是瓶颈,多级导流一般用在处理能力有差异的系统上,例如一级用F5,二级用LVS,三级用nginx
2018-06-12432 - 何国平nginx也支持4层反向代理了
作者回复: 我宁愿用LVS,久经考验,性能强大😄
2018-06-14220 - plflying1、首先分析论坛系统的需求:高可用、扩展性、常规安全性、高性能。以上需求优先级依次降低。 2、并发计算: 1)、首先计算每秒并发量:1000万/(10*60*60)=278qps. (此处每天按照10个小时计算) 2)、计算每秒最大并发量:278*5=1390. (此处的5为经验值,按照论坛的用户使用特点多集中晚上小部分时段,该值已尽量取大。同时网上也有按照时间和并发数的二八原则计算,本人按照第一种计算) 3、容量规划: 1、前端2台nginx负载均衡,利用keepalive保证高可用。同时可用做静态资源缓存服务器。 2、后端tomcat部署应用,按照单台tomcat支撑1200并发,需要2台。考虑冗余,此处配置3台。 3、考虑高性能应用可以集成缓存,也可以使用统一缓存。 4、数据库采用mysql,使用2台进行主从复制和读写分离。一方面满足读多写少的应用场景,另一方面在1台出现故障时,能保证高可用。 以上内容请老师指正!
作者回复: 1000万是用户数量,不是访问次数,访问次数会多很多,其它分析都可以
2018-06-12318 - 老北千万日活,论坛的时间相对比较集中,同时在线预计会达到一百万。 这时候会有一半的人在操作(查看帖子之类),每个用户操作可能会调用2-3个接口。那并发数大约就是50w*2.5=125w? 这时候nginx的5w并发就不行了。需要多个dns到不同主机,再进行nginx,lvs之类转发。 另外像tomcat一般支持2000左右连接数。这样就需要600多台tomcat? 总感觉哪里算的不对😂
作者回复: 确实有点吓人,千万日活转换为百万同时在线这里有问题,一般把日活转换为pv,例如平均每个用户会访问100个页面,日访问量就是10亿,每秒就是大约1.2万的并发访问量,再按照峰值等于均值3倍来算,也就3.6万,远远没有125万那么夸张
2018-07-08317 - 食指可爱多请问老师后面会有容量规划方面文章吗?日活用户1000w转换成日请求量(这一步我没啥经验),再计算平均qps,考虑请求的波峰波谷,波峰取qps均值的5倍。1000x10000x10*24*60*60x5~5700得到qps峰值5700。不考虑后端应用层和更下层数据库缓存这些,接入层一个nginx就可以搞定了?
作者回复: 同样1000万日活用户,不同业务特点的QPS差异很大,例如抖音的访问量会明显高于支付业务,论坛业务明显高于工具类业务
2018-06-12215 - 低调的大老刘华哥,看到很多DNS+Nginx做负载,但是这种方式没办法预防DDOS攻击,你的Ip都暴露了
作者回复: 谁都没法防DDOS攻击呀,不暴露ip,正常用户也访问不了啊😄
2018-06-299 - 一叶dear 华哥:文中说的一般的linux服务器 nginx 5w/s ,lvs 80w/s,这个一般的linux服务器能再具体一点吗,比如你们通常用的多少核多少g内存呢?3Q
作者回复: 与时俱进,现在基本都是32核48g内存了
2018-09-2328