zoukankan      html  css  js  c++  java
  • 高性能负载均衡:分类及架构

    极客时间:《从 0 开始学架构》:高性能负载均衡:分类及架构

    1、引言

    高性能集群的i本质就是通过增加更多的服务器来提升系统整体的计算能力。i高性能集群的复杂性主要体现在需要增加一个任务分配器,以及为任务选择一个合适的任务分配算法。对于任务分配器,现在更流行的通用叫法是“负载均衡器”。任务分配并不是只考虑计算单元的负载均衡,不同的任务分配算法目标不一样,有会基于负载考虑、性能(吞吐量、响应时间)考虑等,即负载均衡不只是为了计算单元的负载达到均衡状态。

    2、负载均衡分类

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

    2.1、DNS 负载均衡

    DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。DNS 负载均衡的本质DNS 解析同一个域名可以返回不同的 IP 地址。

    优点:
    简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。
    就近访问,提升访问速度:DNS 解析时可以根据请求来源 IP,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能。
    缺点:
    更新不及时
    扩展性差
    分配策略比较简单

    2.2、硬件负载均衡

    硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器、交换机类似,可以理解为一个用于负载均衡的基础网络设备。业界典型的硬件负载均衡设备有两款:F5和A10,功能强大、性能强劲,但价格不便宜。

    优点:
    功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。
    性能强大
    稳定性高
    支持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防火墙、防 DDoS 攻击等安全功能。
    缺点:
    价格昂贵
    扩展能力差

    2.3、软件负载均衡

    软件负载均衡通过负载均衡软件来实现负载均衡功能,常见的有 Nginx 和 LVS,其中 Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡。4 层和 7 层的区别就在于协议和灵活性,Nginx 支持 HTTP、E-mail 协议;而 LVS 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。
    软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。
    软件负载均衡的最大优势是便宜
    下面是 Nginx 的负载均衡架构示意图:


    优点:
    简单:无论是部署还是维护都比较简单。
    便宜:只要买个 Linux 服务器,装上软件即可。
    灵活:4 层和 7 层负载均衡可以根据业务进行选择;也可以根据业务进行比较方便的扩展,例如,可以通过 Nginx 的插件来实现业务的定制化功能。

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

    在实际应用中,基于它们的优缺点进行组合使用。组合的基本原则为:DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

  • 相关阅读:
    javascript计算两个时间差
    angular 倒计时15 minute的方法封装
    一个页面多个倒计时的封装
    网站倒计时
    angularjs定时任务的设置与清除
    浏览器Event Loop 是个什么鬼
    一个图片测试的小网站:dummyimage.com
    在vscode 一行的末尾按下tab键 快速生成代码 很爽
    VSCODE 快捷键
    weex 在iOS 平台上的整合
  • 原文地址:https://www.cnblogs.com/whiteBear/p/15734617.html
Copyright © 2011-2022 走看看