许式伟的架构课
许式伟
七牛云 CEO
84945 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 89 讲
许式伟的架构课
15
15
1.0x
00:00/00:00
登录|注册

35 | 流量调度与负载均衡

VS/DR
VS/TUN
VS/NAT
ARP广播查询
VIP绑定
HTTP应用网关
LVS
重试机制
请求失败
VS/DR技术
应用层负载均衡
网络层负载均衡
流量调度不均衡
升级不便
HTTP应用网关场景
LVS场景
HTTP应用网关
缺点
LVS工作原理
解决方案
问题
出向流量
入向流量
下期主题
负载均衡的价值
优雅升级
压力均衡
优雅升级
应用层负载均衡
网络层负载均衡
DNS流量调度
流量
IOPS
连接数
数据库或其他形式的存储
负载均衡
编程语言
操作系统
结语
负载均衡的价值
流量调度方式
流量调度
服务端程序依赖的基础软件
流量调度与负载均衡

该思维导图由 AI 生成,仅供参考

你好,我是七牛云许式伟。
相比桌面程序而言,服务端程序依赖的基础软件不只是操作系统和编程语言,还多了两类:
负载均衡(Load Balance);
数据库或其他形式的存储(DB/Storage)。
为什么会需要负载均衡(Load Balance)?今天我们就聊一下有关于流量调度与负载均衡的那些事情。
上一讲我们画了服务端程序的体系架构图,如下:
什么是 “流量调度”?我们首先要了解这样几个常见的服务端程序运行实例(进程)相关的概念:
连接数;
IOPS;
流量,入向流量和出向流量。
我们知道,一个基本的服务端程序的服务请求,通常是由一个请求包(Request)和一个应答包(Response)构成。这样一问一答就是一次完整的服务。
连接数,有时候也会被称为并发数,指的是同时在服务中的请求数。也就是那些已经发送请求(Request),但是还没有收完应答(Response)的请求数量。
IOPS,指的是平均每秒完成的请求(一问一答)的数量。它可以用来判断服务端程序的做事效率。
流量分入向流量和出向流量。入向流量可以这么估算:
平均每秒收到的请求包(Request)数量 * 请求包平均大小。
同样的,出向流量可以这么估算:
平均每秒返回的应答包(Response)数量 * 应答包平均大小。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

负载均衡在服务端程序架构中扮演着至关重要的角色,通过流量调度实现对请求的分发,确保系统的稳定性和性能。本文首先介绍了流量调度的相关概念,包括连接数、IOPS和流量的概念及计算方法。接着,探讨了DNS流量调度的基础方式及其问题。随后,详细阐述了网络层负载均衡技术,以LVS为例,解析了其工作原理和调度模式,同时指出了其存在的缺点。最后,介绍了应用层负载均衡的方式,通过HTTP应用网关实现对请求的转发和重试,保证系统的稳定性。总的来说,本文通过介绍流量调度与负载均衡的相关概念和技术,为读者提供了对服务端程序架构中负载均衡的深入了解。文章还探讨了负载均衡在业务服务器升级中的作用,以及负载均衡软件的抗压能力优势。通过简洁明了的方式,读者能够快速了解负载均衡的重要性以及不同场景下的应用方式和优势。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《许式伟的架构课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(44)

  • 最新
  • 精选
  • Geek_4b2920
    讲到lvs时说到"有办法避免出现这种请求失败的情况吗?",接着就说nginx是怎么去做的,感觉这里不太衔接呢,lvs不能做服务端重试?还是什么原因?没太明白

    作者回复: lvs 不太好做,在 VS/DR 模式下应答包(response)根本就不经过它,所以它连请求包(request)是否已经应答都不知道,就别提失败后重试了。如果在 VS/NAT 模式下,它也需要理解应用层的协议后才能重试,那它就不是网络层负载均衡,而是应用层负载均衡了。

    2019-08-24
    4
    28
  • dovefi
    总结一下: 1. dns 负载均衡 优点:没有服务器额外开销,没有流量瓶颈 缺点:变更延时高,流量均衡能力弱,没有重试 2. LVS 四层均衡 优点: 只处理入向流量,减小了流量瓶颈的问题,切换升级容易,调度容易 缺点:由于出向流量不经过lvs,所以没办法做重试的功能, 3. nginx 七层负载均衡 优点:完美解决负载均衡的问题,解决请求重试问题,同样可以做到无感知服务端升级 缺点:容易成为流量瓶颈,很依赖负载均衡的性能 一般的架构都是 LVS + nginx 的模式

    作者回复: 一般三个都会同时用

    2020-06-21
    2
    23
  • williamcai
    lvs调度器和业务服务器都用vip,请求过来了,它怎么通过vip找到的是调度器,而不是业务服务器

    作者回复: 文章中有解释,arp 协议是通过 ip 得到 mac,这时只有调度器响应 arp。也就是说,在全局,vip 是被认为绑在调度器上。只有各个业务服务器自己以为自己也绑了vip。

    2019-08-27
    2
    12
  • 不温暖啊不纯良
    老师在文章中提到的DNS流量调度,是不是就相当于是客户端的负载均衡?就像Spring cloud的里面的Ribbon一样?因为ribbon也是客户端拿到所有服务的IP列表,然后在客户端根据负载均衡算法去请求对应的服务,如果不是那么ribbon再进行服务升级的时候,是不是也存在DNS流量调度那样的问题? 我在网上搜了一下,负载均衡有客户端的负载均衡,也有服务端的负载均衡,它们两个之间的优缺点到底是啥?

    作者回复: dns负载均衡并不是客户端负载均衡,但是和客户端负载均衡的原理的确比较像。客户端负载均衡是很难做精细均衡,因为它只看到自己,看不到其他客户端,不像服务端可以对所有客户做均衡。两者一般是配合关系,负载均衡的入口ip通常有多个,通过dns或客户端先做一次初步的均衡,再通过服务端负载均衡做精细均衡。

    2021-06-07
    2
    6
  • 喆里
    请教下,上面的说两种负载均衡方式LVS和http应用网关,在实际应用中,是不是LVS后面的RS对应的就是http应用网关实例, http网关实例后面的RS才是真正的业务实例?

    作者回复: 这样做是靠谱的

    2020-04-25
    2
    6
  • humor
    lvs调度器怎么做到只是修改了mac地址就能找到要转发的业务服务器的呢?我理解的网络层的转发是要先通过mac拿到ip,才能找到对应的机器的

    作者回复: 反过来了,是通过ip拿到mac。

    2019-08-26
    3
    4
  • leslie
    老师今天说的都是前端的:可是好像负载均衡不止这些吧,软件一旦并发高了不是从整体的去做均衡么,不仅仅是这些吧?就像数据库方面我经常会去做一主多从、读写分离,甚至说软硬件很多时候都会做相应的事情,可是总觉得这个如何去整体的把握这种均衡确实觉得不容易把握。 老师的课程一路断断续续努力学到现在整体的收获还是让我感觉不一样:如果可以的话,希望老师对于负载均衡这个问题进行适当的扩展,可能这是大多从业到一定年份的IT从业者会碰到的一个困惑问题,这个合理性确实有时很难整体合理的把握。

    作者回复: 存储的扩展不是基于负载均衡,这个下一讲就会有所涉及。

    2019-08-23
    2
    4
  • 右耳朵猫咪
    七牛云能顶住每天亿万级的视频文件存储吗,比如像快手、抖音那样的。

    作者回复: 这个必须没问题啊😄

    2021-03-24
    2
    3
  • 氧气🌙 🐟 🌺
    这里面隐含的一个前提是负载均衡软件的抗压能力往往比业务服务器强很多。 由上面一问引发的问题:全球DNS服务器的性能怎样,如何能撑得住全球并发访问?我猜想访问压力也不是直接分散,而是逐个梯次缓存,类似于硬盘,内存,缓存,寄存器等逐级释放。

    作者回复: 是这样

    2019-12-14
    3
  • 北岸大法师
    lvs第二种和第三种调度方法有啥区别啊,感觉都是请求走调度器,响应直接有rs发走了

    作者回复: 实现机制有差别 效果相近。具体上,IP隧道是有协议转换成本,而DR只是改目标mac地址,是很轻的操作。

    2021-10-05
    2
收起评论
显示
设置
留言
44
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部