分布式服务-负载均衡

本文探讨了在面对大量用户访问和高并发需求时,如何通过垂直扩展(高性能服务器、大型数据库等)和横向扩展(分布式架构)来应对。重点介绍了业务拆分、分布式部署以及各种负载均衡方法,如DNS负载均衡、IP负载均衡、链路层负载均衡(包括SNAT和直接路由)和混合型负载均衡的原理、优缺点及实际应用。
摘要由CSDN通过智能技术生成
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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eddy咸鱼

感谢大佬加鸡蛋~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值