美文网首页
分布式-12-负载均衡

分布式-12-负载均衡

作者: 宠辱不惊的咸鱼 | 来源:发表于2019-10-04 09:24 被阅读0次

why

  • 大量用户访问、高并发请求、海量数据
    • 垂直扩展:高性能服务器 + 大型数据库 + 高速存储 + 高效编程语言(Go,Scala等)
    • 横向扩展:分布式
  • 从单机到分布式:重要的区别在于业务拆分和分布式部署
  • 业务拆分和分布式解决了集中到分布的问题,但是独立业务还存在单点和统一访问入口问题
  • 单点问题方案:冗余
  • 统一访问入口问题:负载均衡,实现流量分发

what

  • 将负载进行平衡,分摊到多个操作单元上执行
  • 作用
    • 分散并发压力,提高吞吐量(高性能)
    • 故障转移(高可用)
    • 网站伸缩(扩展性)
    • 安全防护(黑白名单等过滤)
  • 分类
    • DNS负载均衡
    • HTTP负载均衡
    • IP负载均衡
    • 链路层负载均衡
    • 混合型负载均衡

负载均衡原理

  • 系统扩展
    • 纵向扩展:单机增强,无法满足大流量、高并发、海量数据
    • 横向扩展:机器叠加
  • 典型的集群和负载均衡架构
    • 应用集群
      • 同一应用多机部署
    • 负载均衡设备
      • 将用户请求,根据负载均衡算法,分发到集群中的某一台服务器


        load-balance-001.jpg

DNS负载均衡

load-balance-002.jpg
  • 最早的负载均衡技术,利用域名解析实现负载均衡
  • DNS服务器中配置多个A记录,对应的服务器构成集群
  • 优点
    • 简单:仅需DNS服务器即可
    • 提高性能:可以解析成最短路径
  • 缺点
    • 可用性差:DNS解析是多级解析,改动DNS后解析时间较长
    • 扩展性低:DNS控制权在域名商,无法做更多改善和扩展
    • 维护性差:无法反映服务器当前运行状态;支持的算法少;无法区分服务器的差异
  • 实际应用:DNS作为第一级


    load-balance-003.jpg

IP负载均衡

load-balance-004.jpg
  • 修改目的IP实现负载均衡
  • 用户请求数据包 -> 负载均衡服务器 -> 内核进程获取数据包 -> 根据负载均衡算法得到真实IP -> 修改目的IP -> 发给服务器 -> 服务器处理,发送响应 -> 负载均衡服务器 -> 修改数据包源IP为自己 -> 响应发给用户(下面第二种方式)
  • 两种方式
    • 负载均衡服务器修改目的IP的同时修改源IP为自己,即源地址转换(SNAT)
    • 负载均衡服务器同时作为真实服务器集群的网关
  • 优点
    • 在内核进程完成数据分发,比在应用层性能更好
  • 缺点
    • 所有请求响应都需要经过负载均衡服务器,集群吞吐量受限于负载均衡服务器网卡带宽

链路层负载均衡

load-balance-005.jpg
  • 修改MAC地址,进行负载均衡
  • 数据分发时,不修改IP,而修改目的MAC,配置真实集群所有机器虚拟IP和负载均衡服务器IP一致
  • 实际服务器IP和请求目的IP一致,不需要负载均衡服务器进行地址转换,可将响应数据包直接返回给用户,避免负载均衡服务器网卡带宽成为瓶颈
  • 也称为直接路由模式(DR)
  • 优点
    • 性能好
  • 缺点
    • 配置复杂
  • 实践建议
    • DR模式是目前使用最广泛的一种负载均衡方式

混合型负载均衡

load-balance-006.jpg load-balance-007.jpg

相关文章

  • 分布式-12-负载均衡

    why 大量用户访问、高并发请求、海量数据垂直扩展:高性能服务器 + 大型数据库 + 高速存储 + 高效编程语言(...

  • 【转载】负载均衡算法实现java与场景分析

    负载均衡算法实现分布式系统中负载均衡算法在高可用场景下的分析

  • 【第二节】单机,集群,分布式

    什么是单机、集群、分布式 集群,分布式的意义 负载均衡

  • Dubbo负载均衡

    一、负载均衡的方式 在分布式集群架构下,负载均衡很重要。集群本来就是为了分担压力,负载均衡做的不好,就会失去了集群...

  • 一致性hash算法

    前言 在分布式系统中,很多服务需要进行负载均衡,负载均衡算法中,如果有映射需求且允许少量不可达重新映射,比如分布式...

  • 《分布式技术原理与算法解析》学习笔记Day25

    负载均衡 负载均衡是分布式可靠性中非常关键的一个问题,它在一定程度上反映了分布式系统对业务处理的能力。 什么是负载...

  • 负载均衡是怎么做的?

    负载均衡 负载均衡是实现分布式系统高可用的方式之一;负载均衡策略实现了把高并发的流量分摊在其后的服务器集群上;常见...

  • Java springcloud B2B2C o2o多用户商城

    ribbon用以实现负载均衡;实现软负载均衡,核心有三点:需要JAVA Spring Cloud大型企业分布式微服...

  • 系统设计基础知识

    基础知识 负载均衡 分布式系统不可少的组件 有 user 到 web server 之间的负载均衡 有 web s...

  • 浅析一致性哈希算法

    一、分布式算法 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、...

网友评论

      本文标题:分布式-12-负载均衡

      本文链接:https://www.haomeiwen.com/subject/qmgrpctx.html