• 从网络到分布式-负载均衡


    网络并发负载均衡

    OSI 七层参考模型

    分层模型,每一层实现各自的功能和协议,并完成与相邻层的接口通讯。OSI 的服务定义详细说明了各层所提供的服务,某一层的服务就是该层及其下各层的一种能力,通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。

    • 应用层:为各种应用程序提供服务
    • 表示层:数据格式转化、数据加密
    • 会话层:建立、管理和维护会话
    • 传输层:定义了一些传输数据的协议和端口号
    • 网络层:IP 选址及路由选择
    • 数据链路层:mac 地址的封装与解码。
    • 物理层:定义物理设备标准,如网线接口类型、光纤的接口类型、各种传输介质的传输速率。主要用于传输比特流。

    TCP/IP 五层模型

    负载均衡

    通常是指将请求或者是数据,均匀的分摊到多个操作单元上执行。属于分而治之的思想。

    目的是通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题

    负载均衡算法

    • 静态
      • RR:轮询
      • WRR:权重轮询
      • DH
      • SH
    • 动态
      • LC:最小连接数法
      • WLC:加权最小连接
      • SED:最短期望延迟
      • NQ:never queue
      • LBLC:基于本地的最小连接
      • 响应速度均衡
      • 处理能力均衡

    四层负载均衡

    基于传输层的负载均衡,代表协议为 TCP/UDP,除了包含 IP 之外,还区分了端口号,主要是通过基于 IP + 端口号进行请求的转发。

    四层负载均衡服务器 LVS

    1. NAT:地址转换
    2. DR:直接路由
    3. TUN:隧道技术
    NAT 地址转换

    原理:IP地址改写

    DR 直接路由

    原理:局域网改写 mac 地址

    TUN 隧道技术

    原理:IP封装、跨网段

    keepalived

    高可用,用于检测各个节点的状态,处理单点故障。

    若单点 LVS 挂掉,该如何处理,思路:多点,形成集群(分布式)

    • 主备:只有主向外提供服务,备机用于在主机发生故障的时候,提供服务。
    • 主主:同时向外提供服务
    • 主从:两者相互配合完成工作

    keepalived

    1. 监控自己服务
    2. Master通告自己还活着,Backup监听Master状态,Master挂了,一堆Backup推举出一个新的Master
    3. 配置:VIP、添加ipvs、keepalived是有配置文件的
    4. 对后端的Server做监控检查
    5. keepalived是一个通用的工作,主要作为HA实现:
      Nginx,可以作为公司的负载均衡来使用,Nginx成为了单点故障,也可以用keepalived来解决,只要涉及到一变多的情况,基本都可以使用keepalived来解决。

    七层负载均衡

    基于应用层的负载均衡,代表协议由 HTTP、DNS 等,可以根据请求的 URL 等进行负载,更加灵活。基于反向代理的负载均衡的 Nginx 就是其代表之一。

    普通的四层负载均衡软件,其实现的功能只是对请求数据包的转发、传递,从负载均衡下的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户,而基于反向代理的负载均衡是,反向代理服务器在接收访问用户请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用户。在节点服务器看来,访问的节点服务器的客户端用户就是反向代理服务器,而非真实的网站访问用户。

  • 相关阅读:
    jQuery遍历之siblings()
    命名空间
    AnsiString
    《linux内核完全注释》读书笔记 2
    mciSendString
    PeekMessage, GetMessage, PostMessage, SendMessage
    c/c++中运行外部程序或打开文件(转)
    定义基类和派生类
    复制构造函数
    让StringGrid控件显示下拉菜单
  • 原文地址:https://www.cnblogs.com/ice-image/p/14524056.html
Copyright © 2020-2023  润新知