ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

开始学架构 | 笔记5

2022-05-01 08:00:11  阅读:130  来源: 互联网

标签:负载 架构 开始 性能 笔记 Hash 硬件 均衡 服务器


如下内容来之https://time.geekbang.org/column/article/6463 学习笔记:

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

  负载均衡分类常见的负载均衡系统包括 3 种:DNS 负载均衡、硬件负载均衡和软件负载均衡。

  DNS 负载均衡: DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。

    优点有:简单、成本低 ; 就近访问,提升访问速度:

    缺点有:更新不及时:DNS 缓存的时间比较长。扩展性差: 控制权在域名商那里。分配策略比较简单:不能区分服务器的差异(不能根据系统与服务的状态来判断负载)。

  硬件负载均衡:目前业界典型的硬件负载均衡设备有两款:F5 和 A10。这类设备性能强劲、功能强大,但价格都不便宜,一般只有“土豪”公司才会考虑使用此类设备;

    优点有:

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

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

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

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

    缺点有:

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

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

  软件负载均衡:通过负载均衡软件来实现,常见的有 Nginx (7层)和 LVS(4层),Nginx 支持 HTTP、E-mail 协议;而 LVS 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。

    软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。

    Nginx 的性能是万级,一般的 Linux 服务器上装一个 Nginx 大概能到 5 万 / 秒;

    LVS 的性能是十万级,据说可达到 80 万 / 秒;

    而 F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有(数据来源网络,仅供参考,如需采用请根据实际业务场景进行性能测试)。

    当然,软件负载均衡的最大优势是便宜,一台普通的 Linux 服务器批发价大概就是 1 万元左右,相比 F5 的价格,那就是自行车和宝马的区别了。

    

 

    缺点有:性能一般:一个 Nginx 大约能支撑 5 万并发。功能没有硬件负载均衡那么强大。一般不具备防火墙和防 DDoS 攻击等安全功能。

    结论:组合使用。具体来说,组合的基本原则为:DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

    

 

21 | 高性能负载均衡:算法

  任务平分类:负载均衡系统将收到的任务平均分配给服务器进行处理,这里的“平均”可以是绝对数量的平均,也可以是比例或者权重上的平均。

    轮询        是最简单的一个策略,无须关注服务器本身的状态(只要服务器在运行,运行状态是不关注的)

    加权轮询 是一种特殊轮询,解决了不同服务器处理能力有差异的问题,但同样存在无法根据服务器的状态差异进行任务分配的问题。 

  负载均衡类(服务器的角度):根据服务器的负载来进行分配,并不一定是通常意义上的“CPU 负载”,而是系统当前的压力,CPU 负载,也可以用连接数、I/O 使用率、网卡吞吐量等来衡量系统压力。

    负载最低优先的算法解决了轮询算法中无法感知服务器状态的问题,代价是复杂度大幅上升,

    轮询可能5 行代码就能实现的算法,而负载最低优先算法可能要 1000 行才能实现,甚至需要负载均衡系统和服务器都要开发代码

  性能最优类(客户端的角度):负载均衡系统根据服务器的响应时间来进行任务分配,优先将新任务分配给响应最快的服务器。

    性能最优优先类算法本质上也是感知了服务器的状态,只是通过响应时间这个外部标准来衡量服务器状态而已。因此存在的问题和负载最低优先类算法类似,复杂度都很高

  Hash 类:负载均衡系统根据任务中的某些关键信息进行 Hash 运算,将相同 Hash 值的请求分配到同一台服务器上。常见的有源地址 Hash、目标地址 Hash、session id hash、用户 ID Hash 等。

  

 

标签:负载,架构,开始,性能,笔记,Hash,硬件,均衡,服务器
来源: https://www.cnblogs.com/dongxizhen/p/16212149.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有