如何保证大规模服务架构的质量?
极客时间编辑部
讲述:杜力大小:1.12M时长:02:26
服务质量对于大规模服务架构的重要性是不言而喻的,服务只有足够稳定才能吸引用户使用、留存,进而转化出更丰富的应用场景。那么,如何保证大规模服务架构的质量呢?百度资深研发工程师田健分享了他们团队的经验。
很多开发人员在诊断网络故障的时候,第一件事情就是输入百度首页判断网络是否有问题,这里离不开两件事:一是如何在入口保证;二是如何在底部拦截。
保证入口可用的稳定机制,一方面是容灾 cache 的建设,另一方面是流量的自动管理,包括内网加外网的混合流量调度。流量调度会综合考虑后端服务可用性、后端服务容量、机房间冗余情况、全网故障等因素,实现动态调度能力。同时,对于大规模服务的流量调度,依然离不开分级发布的老话题,
而另一点要关注的是对于错误的容忍和处理能力。当机房故障、出口带宽不足、运营商基础设施异常,你需要第一时间切走流量。对于内部上下游依赖,需要有容量的识别和弹性伸缩的能力,这都依赖于治理平台的基础能力。
容错处理或兜底机制是服务治理平台对于服务质量管理的最后一道关卡。容错和兜底的设计,虽然不会被经常用到,但是却意义非凡,价值巨大。
开发人员设计任何一套系统的时候,都有可能面对来自用户的恶意使用、误操作、以及系统 bug 的威胁,因此,你也需要应对的办法。百度整理并归纳了三种通用的处理方式,如下:
一是分布式锁,针对重要资源的变更操作,应该有兜底的锁机制,均需要抢锁才能执行,这样一来,可以通过合理设置锁的数目,确保不会有大量的重要资源被恶意操作;
二是操作 diff 比对,通常在一套稳定的系统中,操作前后的状态不会相差特别巨大,如果相差较多,需要确认。
三是防御性的入口,比如 API 的设计,类似于批量删除这种高危的 API 应该被“双规”,也就是规定角色、规定入口才能够被执行,比如设置了白名单的机器,以及通过单次上线单授权的角色来操作。
以上就是今天的内容,希望能给你带来帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论