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 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

  • 相关阅读:
    Hdu 5396 Expression (区间Dp)
    Lightoj 1174
    codeforces 570 D. Tree Requests (dfs)
    codeforces 570 E. Pig and Palindromes (DP)
    Hdu 5385 The path
    Hdu 5384 Danganronpa (AC自动机模板)
    Hdu 5372 Segment Game (树状数组)
    Hdu 5379 Mahjong tree (dfs + 组合数)
    Hdu 5371 Hotaru's problem (manacher+枚举)
    Face The Right Way---hdu3276(开关问题)
  • 原文地址:https://www.cnblogs.com/whiteBear/p/15734617.html
Copyright © 2011-2022 走看看