1.应用场景
主要用于学习Loader Balance的分类,应用场景,以及应用在大型项目中。 |
2.学习/操作
1.文档阅读
2.整理输出文章一20 | 高性能负载均衡:分类及架构
笔记
文章二第26讲 | 如何用 关服务器进行负载均衡/h3>
TBD 使用chrome输入 ningxiaofa.top 多次返回的内容不同,有时返回之前的博客内容,有时返回目前的博客内容, 经过排查如下,手下,看了chrome中缓存的DNS的记录 可以看到,有两条记录,而且查询IP可知,分别是华为云和阿里云
怀疑是自己的华为云HECS还没到期,登陆华为云发现确实如此「以为到期了,有点尬」 然后查看了下,域名解析记录,可以看到,自己配置同一个域名多个IP地址。 但是两台服务器上的内容并不是完全相同的,所以,出现上面的情况。
这也是通过DNS实现负载均衡的手段
后续补充 … |
3.问题/补充
1. 课后思考题:假设你来设计一个日活跃用户 1000 万的论坛的负载均衡集群,你的方案是什么计理由是什么/h3> 友-鹅米豆发 1、首先,流量评估。 考虑每个用户操作次数,假定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,确定实例。 2. 友-无聊夫斯基我还是不是很理解TPS和QPS具体的区别
3. 友-孙振超这篇文章最大的收获是分析问题的思路,从dau出发,结合业务的特点,计算出来总的qps和tps,而后再根据通常规律计算出qps和tps的峰值,加上一定的未来发展空间和高可用冗余,结合单机能够支撑的qps和tps量,就可以计算出来整个集群的规模,有了这些数据就可以制定出比较合理的负载均衡的策略,而不是无的放矢,凭空猜测。 4. ant日活跃用户1000万应该就是国家级应用了,面向全国活跃或者全球用户,比如最大的Xxx 站github。 这个时候钱应该都不是问题了。 我觉得可以考虑异地多机房部署。 这样导流之后每个机房的日活就少很多。 其实我在想如果在每个机房不加入负载硬件用多个ngnix集群来实现,每个ngnix上会有我们自定义的路由算法。ngnix也架设多层,逐层导流。 比如我们一个机房设计承受200万,那么我们可以架设3层ngnix,第一层基于自己的路由算法导流到第2层ngnix。第2层又导流到第3层。为了避免ngnix单点,每一层ngnix部署多。这样导流下流每台服务器所承认的访问不会很多。不知道这样的设计能不能达到要求,老师点评下 其他 友补充: KW?? 这不脱裤子放屁码…本来就是nginx处理不了那么大的量,上层才需要硬件扛,你上层的nginx还是顶着这么大的量啊 5. plflying1、首先分析论坛系统的需求:高可用、扩展性、常规安全性、高性能。以上需求优先级依次降低。 其他 友补充: 11月的萧邦 可以预估每个用户触发几次点击操作 如果是5次 那么1000万×5 另外 这些业务高峰期可能只有晚上那两个小时左右 所以把10小时替换为2小时。 刘国正 我理解,plflying算出来的278是说平均实时在线用户数,这些在用户中,同时去点击论坛里功能(也就是产生读写操作)的用户,可能占20%,那就是278×0.2=50,考虑访问高峰期,差不多50×2=100qps ,对于这个并发量,一台nginx足以抗住。 6. 食指可爱多请问老师后面会有容量规划方面文章吗活用户1000w转换成日请求量(这一步我没啥经验),再计算平均qps,考虑请求的波峰波谷,波峰取qps均值的5倍。1000x10000x10*24*60*60×5~5700得到qps峰值5700。不考虑后端应用层和更下层数据库缓存这些,接入层一个nginx就可以搞定了/p> 问题: 5700是怎么计算出来的/p> 7. 何国平nginx也支持4层反向代理了 8. 老北千万日活,论坛的时间相对比较集中,同时在线预计会达到一百万。 这时候nginx的5w并发就不行了。需要多个dns到不同主机,再进行nginx,lvs之类转发。
9. 低调的大老刘华哥,看到很多DNS+Nginx做负载,但是这种方式没办法预防DDOS攻击,你的Ip都暴露了
10. dear 华哥:文中说的一般的linux服务器 nginx 5w/s ,lvs 80w/s,这个一般的linux服务器能再具体一点吗,比如你们通常用的多少核多少g内存呢Q11. 交叉路口论坛这种业务的接口响应应该比较短,预计平均100ms ,超时限制500ms 。 日活千万,预计峰值QPS 4000/s,按照超时500ms ,并发估算2000。 采取dns+nginx 足够,具体实例根据 staging 压测来评估。 dns 一是为了地理位置负载均衡,还有为了扩展性(客户端通过域名访问,后端需要拓展机器对客户端透明)。 Nginx :应用负载均衡,打到某个服务实例,利用其故障转移(可检测实例状态进行剔除)、并发限制等特性来保证服务稳定性,同时还可以利用它做其他事情(access log 做日志行为分析)。 希望华哥指出不足?? 12. 互联 老辛并发测试如何来做,怎么知道自己设计的数据库,或者架构能支撑多少并发 13. 星火燎原不差钱的话可以考虑文中DNS +F5+ ngnix ,一般这种日活还是考虑DNS+LVS+Nginx 14. 飞翔微服务的服务发现是不是也算一类负载均衡/p> 15. feifei日活跃用户千万,按14小时折算,每秒并发198,但这是平均,还有高峰时段,并发按平均并发5倍来估算,即每秒1千. 然后来对比方案: Dns负载,目前单机房能够满足,没跨机房的必要,dns目前不适用。 经过方案的对比,软件负载使用nginx可以完全满足业务的要求,所以使用软件负载即可 16. 张玮(大圣)看了大家的各种计算,估容量,估机器, 想说的是:根据之前专栏讲到的单台高性能模式等知识,先把单台机器做到最优化,同时做好负载均衡层,然后进行压测,一步一步添加机器,均衡层 Nginx 够了,另外,要考虑成本啊,F5尽量不用,稳定性用双主克服下. 17. 三月沙@wecatch不考虑多机房,不考虑不同地区,一个配置好点的nginx 就够了,防止单点,可以再加一台 18. 肖一林峰值大概就是5000/s~20000/s,要看论坛活跃度。所以一个ng就够了。dns负载均衡也不一定就要支持异地多活吧,同一个机房多台主机也是可以的,所以最多dns+ng就可以很完美。需要异地多活的项目应该非常少。 19. 三水老师,流行的SLB还有HAProxy,我们用LVS做DNS的LB,Nginx和HAProxy做HTTP的LB。 20. 黄金的太阳假设论坛的用户平均分布在全国各地(东,西,南,北四个区域),1000万的日活跃用户平均分散到每个区域后可近似估计并发量在2.5万~5万用户,可以采用两级嵌套的负载均衡架构 1.利用DNS达到四个地域的负载均衡 2.利用Nginx的方式达到本区域内的负载均衡 此方案未考虑西部地区用户少,东部地区用户多的情况,在并发量尚可接受的范围内,可以考虑将单台Nginx集群化以增强并发负载支持能力 不知道理解的对不对 21. good boby向后延伸:负载均衡还包括以下处理 1、集群调度平台(PaaS)平台 例如k8s 、docker, 可以实现动态扩容和缩减,根据事实的并发量进行处理,当然前提是包括Nginx、lvs、haproxy前端负载均衡器不能挂掉。 2、分布式框架。 例如:Spring Cloud 的ribbion、feign也可以从应用层面实现负载均衡。
22. lawrence.peng老师,看了前面的文章的话,经常能看到你说,linux服务器 nginx 5w/s ,lvs 80w/s 等等,并且知道这些机器是当前主流的配置 32C 48G, 要求我们要把这个性能指标背熟,目地是很明显的,为了做容量规划。但现在很多创业公司,基本上都是上云的,云主机的配置基本都是4C 8G,问题来了,怎么去做这个应用的容量规划呢者这些指标哪里能查阅吗/span> 23. 道法自然我也希望老师能对并发数,qps,日活等这些能够举个经典例子计算下, 上虽然有,可是总觉着讲解地不是很清楚,对这块一直都有点迷糊。
24. Mask老师,这个负载均衡会涉及到数据同步吗是说我没搞懂??,多台服务器其实访问的是同一个数据库服务器,不存在数据实时同步的问题。 25. 沐雪千万日活 约等于 10亿级 访问量, 1万/秒的访问量;峰值4万; 若用Nginx,则有点危险,最好外面在加个 LVS ; 1个Lvs—> 4个Nginx 1个Nginx—> 10个tomcat
26. alter老师,在DNS章节里面,是怎么保证北方用户访问的就是北方的机房,南方用户访问的就是深圳的机房/p> 27. 小鬼爱风雪1000万日活跃用户,最差情况是1000万并发,如果分散一下,500万可以了,以此量级去分析,真实场景会按照千万级设计 个人补充:
28. 过去已落幕示例里面硬件负载的性能比软件高,当并发足够大时候,硬件负载的下游软件负载处理不过来,会不会出现问题。 29. 追忆似水年华想到一个问题,用户访问访问一个页面,浏览器本身的并发数在5~6之间,也就是会同时请求5~6个 页的静态资源,但是看大家在专栏里的讨论,好像都是把访问一个页面看做一个并发连接,这样统计没有问题么/p> 30. 脱缰的野马__老师,请问这三类负载均衡方式,都是怎么对目标节点存活状态进行实时监控的啊,比如心跳检测类似的。 没看到老师讲解, 如果某个地理级别的硬件负载均衡挂了、 或者硬件负载均衡中某个集群都挂了、 或者软件负载均衡中的某个机器挂了是怎么发现的呢/p> 如果挂了他们都是怎么处理的呢/p> 31. 上班族程序员设计师的水果怎样通过DNS来访问异地服务器NS服务器我们不是不能控制么/p> 32. 慎独明强 看到华哥这章收获很大,之前见过这些名词很多次,但就是没搞清楚。DNS层应该都会有,进行域名解析为具体的ip。回头又看了公司之前运维发布的文章,公司采用的是腾讯云的组件,原理差不多,第一层有高防组件WAF并将https拆包为http,第二层是CLB(集群负载均衡)组件,第三层就是自己公司搭建的10台Nginx(8核16g)来反向代理到自己公司对应的服务器。 32. 古月三石老师请教个问题,dns负载后边的数据库是一个还是多个如果是多个怎么解决多个库间的同步问题,如果是一个那是不是 络延时会很大/p>
问题,DNS的并发请求不高吗/p> 33. gameboy120按照pv算一个页面一次请求,会不会不准,每个页面会有异步调用,这个不考虑进去吗/p> 34. 刘鹏老师,我有个地方不明白。现在有比如说现在有100w的并发量到 F5,绕后再分发到nginx,但nginx只能每秒5w的并发量,那说明再nginx处请求排队是吗且服务器就这么多,最后由nginx分发的请求 不应该和只用F5 分发是一样的吗/p> 35. I上云就不用考虑这么多了 36. sunlight001感觉这种设计初期,考虑用户体验,可以用dns+ha+nginx来做负载均衡,一般的可能不用dns也差不多,用了dns肯定是要快些的 15 | 可编程的互联 世界-极客时间 37. PeielNginx 可以用作应用层 关,那么应用层 关怎么理解/span> 可以理解成,我们通常在 Nginx 中对 HTTP 请求根据不同的api「uri」做相关的反向代理、负载均衡等相关配置,也就是所谓的api 关/span> 38. X你好老师, 关这个词一开始是在传输层接触到的,路由器起到的就是 关的作用,本质上是一个关口,数据包通过关口之后去寻找自己的目的地。 现在谈的应用层的 关,是不是就是HTTP的请求的关口,根据不同的URL映射到不同的服务端接口,可以把负载均衡器理解为应用层的 关吗/span> 个人补充:
39. 什么是反向代理与负载均衡器/span>同时,见下面的问题,API 关与负载均衡的区别,以及如何使用。
40. 负载均衡器和 API Gateway 混淆dns – Load balancer and API Gateway confusion – Stack Overflow https://medium.com/@LadyNoBug/api-gateway-vs-load-balancer-5bbb2c6f0850
|
4.参考
参见文档阅读列表 |
后续补充
…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!