• 负载均衡的部署方式


    网上找到两种负载均衡部署方式的分类描述:

    百度百科的
    http://baike.baidu.com/view/51184.htm

    分三类:

    • 路由模式
    • 桥接模式
    • 服务直接返回模式

    51cto的一篇博客:
    http://virtualadc.blog.51cto.com/3027116/611592

    分四类:

    • 串接路由模式 (Routed)
    • 单臂模式 (One-arm)
    • 透明模式 (Transparent)
    • 服务器直接返回 (DSR)

    我个人觉得分四类这套方案更合理。

     

     

    串接路由模式(Routed)

     

    路由部署方式中,通常服务器的网关需要指向负载均衡设备,这种情况下的流量处理最简单,负载均衡只做一次目标地址NAT(选择服务器时)和一次源地址NAT(响应客户端报文时)

    085351662

     

     

    085436559

     

    单臂模式 (One-arm)

     

    单臂模式中,通常服务器网关指向核心交换,为保证流量能够正常处理;负载均衡设备需要同时做源地址和目标地址NAT转换。也就是说,这种情况下服务器无法记录真实访问客户端的源地址。如果是http流量时,可以通过在报头中插入真实源地址,同时调整服务器日志记录的方式弥补。

    085815853

     

    085957507

    透明模式 (Transparent)

    透明模式中,服务器和负载均衡设备同一网段;通过二层透传,服务器的流量需要经过负载均衡设备。

     

    090538973

    090748433

     

    服务器直接返回 (DSR)

    服务器直接返回是较早的负载均衡常用方式,通过在服务器上的配置修改,负载均衡设备其实仅处理客户请求流量,所有服务器响应的流量直接返还给客户。早期在负载均衡性能较低时常用来作为一个避免性能瓶颈的手段。由于此种方式只能使用一些基本的4层负载,现在的高性能负载均衡设备通常不使用此类部署,但仍对延迟性要求高的语音类和视频类有应用。

    091025837

     

     091440722

     

     

     

     

     

    部署方式 特点 优点 缺点
    串联路由模式 负载均衡设备使用两个不同网段,
    使用3层分配流量
    比较常见的部署方式
    •负载均衡设备将服务器有效隔离,安全考虑上最好
    •服务器网关指向负载均衡设备, 功能实现更简单,有利于最大化负载均衡性能
    •服务器可以直接接收到真实访问源客户IP地址
    •对现有拓扑结构变动较大
    •需要考虑内网服务器是否有对外访问需求,必要时需要设置静态NAT转换
    单臂模式
    One-arm
    VIP(提供服务的虚拟IP)和真实服务器在同一网段;
    最常见的部署方式
    •部署方便,对现有拓扑结构变动小
    •和应用无关的流量不会通过负载均衡设备
    •内部应用无影响,外部应用通常需要前端防火墙做NAT映射到应用VIP
    •不能有效的屏蔽真实服务器,安全方面需要考虑
    •服务器网关不是负载均衡设备时
    1)负载均衡设备需要做源地址NAT后再转发流量,需要IP地址增多
    2)服务器不能直接接收访问客户源地址,需要对应用做修改后才可以通过其他方式获得真实访问地址
    透明模式 负载均衡设备和服务器之间部署在同一网段,
    仅在有特殊需求时使用
    •对现有拓扑结构变动最小
    •服务器可以直接接收到真实访问源客户IP地址
    部署不直观,
    调试和故障分析时较繁琐
    DSR 服务器回程报文不通过负载均衡设备,
    直接返回给客户端;
    延迟短,适合流媒体等对延时要求较高应用
    •性能高,可处理吞吐量高
    •服务器可以直接接收到真实访问源客户IP地址
    只能做4层的负载均衡,基于7层的服务无法实现
    优化(例如压缩等)无法使用
    需要在服务器上配置loopback地址
  • 相关阅读:
    设置css阴影和取消css阴影
    logback 中打印自定义参数 (ip 服务名)
    kafka
    用SQL命令查看Mysql数据库大小 统计数据库空间占用
    Redis删除特定前缀key的优雅实现
    SpringBoot外部配置以及优先级
    分析redis key大小的几种方法
    logback
    Redis 中 scan 命令踩坑
    如何在yaml文件中引用python函数? 上海
  • 原文地址:https://www.cnblogs.com/ghj1976/p/3376336.html
Copyright © 2020-2023  润新知