Go 服务开发高手课
徐逸
头部大厂资深 Go 技术专家、前腾讯资深工程师
1195 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 23 讲/共 28 讲
开篇词 (1讲)
Go 服务开发高手课
15
15
1.0x
00:00/00:00
登录|注册

22|超时和重试:如何提升高并发重要请求的成功率?

你好,我是徐逸。
首先预祝你春节假期快乐。这节课是春节前最后一次更新,1 月 28 日到 2 月 4 日期间我们会暂时停止更新,2 月 5 日再恢复更新。
在这一章前面的课程内容里,咱们一同深入学习了如何从编码以及单元测试这两个关键层面,来全力保障服务上线之后的稳定性。不过呢,即便咱们把代码编写得再健壮,服务在线上环境实际运行的过程当中,依旧会有很多突发状况。
这一章我们就从架构层面入手,一起看看线上服务稳定性的各种常见问题如何解决。
作为用户,想必你对双十一大促或者春运抢票这样的情况并不陌生,这种流量高峰期,也是最考验系统稳定性的时候。那今天呢,咱们就先来聊一聊,在这样的高并发场景下,下游访问偶尔响应时间变得很长时,我们究竟应当采取哪些措施,才能尽可能地确保我们的服务始终保持稳定且可用呢?

下游响应时间变长对我们服务有什么影响?

在讨论具体方案之前,你不妨先想一想:倘若请求下游偶尔出现响应时间变长的情况,可能给我们的服务带来怎样的影响呢?
图1 正常响应
要知道,当请求下游迟迟不能返回结果时,我们服务与下游服务之间的连接就无法释放,而且正在等待请求返回的协程也会被读请求给阻塞住。一旦响应时间变长的请求数量变多,极有可能使我们服务的机器资源被耗尽,最终使得我们的服务崩溃
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 在高并发场景下,对下游调用需要设置合理的超时时间,以避免耗尽服务的机器资源。 2. 对于重要的请求类型,需要进行超时重试,同时确保下游调用是幂等的情况下,以提升整体服务的可用性。 3. 采用链路中止策略,避免重试风暴给下游造成较大压力。 4. 设置重试阈值熔断,控制重试比例,避免大面积超时重试直接把下游打崩。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 服务开发高手课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部