【稳定性】稳定性建设之依赖设计

💡 原文中文,约3900字,阅读约需10分钟。
📝

内容提要

本文讨论了分布式微服务中的稳定性建设,介绍了强弱依靠管理的概念和分类,以及管理方针和工具扫描的方法。强依靠是指服务之间的依赖关系,而弱依靠是可选的依赖关系。文章还强调了降级机制和持续改善的重要性,强弱依靠管理能够提高系统的稳定性和性能。

🔎

延伸解读

依赖分级:从最强到最弱的稳定性权衡

文章将依赖分为最强、强、弱、最弱四个等级,并指出最强依赖可能导致系统崩溃,应避免;强依赖要求服务只依赖同级或更高级别;弱依赖允许降级;最弱依赖无功能损失。这种分级为架构设计提供了明确的风险标尺,帮助团队在成本与稳定性间做出权衡。

依赖分类:多维度识别与管控

文章从事务域、系统启动、基础技术服务、数据库、部署、对外API及硬件七个维度对依赖进行分类,并给出具体准则,如系统启动只允许依赖数据库和本地资源,数据库按等级隔离。这些分类覆盖了微服务依赖的主要场景,为系统性梳理依赖提供了框架。

管理方针:非中心故障不影响中心事务

强弱依赖管理的核心目标是确保非中心事务故障不影响中心事务,并通过弱依赖容错和应急预案提升稳定性。实现手段包括输出依赖关系图、定期验证强弱依赖、制定降级策略。这要求团队持续投入,将依赖管理视为动态过程而非一次性任务。

工具与人工结合:依赖梳理的落地实践

文章介绍了Pfinder拓扑图、API链路追踪等工具扫描方法,以及人工代码走读梳理依赖强弱、同步异步、权重等属性。工具提供全局视图,人工补充细节,两者结合能更准确地识别关键依赖,如Promise案例中仅JIMDB和到家门店时效为强依赖,其余可降级。

❓

Q&A

什么是强依赖和弱依赖?

强依赖是指服务之间的必需依赖,若依赖的服务不可用,则相关服务也不可用;弱依赖是可选依赖,若依赖的服务不可用,相关服务仍可用,但可能会损失一些次级功能。

如何提高分布式微服务的稳定性?

可以通过强弱依赖管理、优化服务依赖关系、实施降级机制和持续改善来提高系统的稳定性。

降级机制有哪些类型?

降级机制分为自动降级和被动降级,自动降级在流量尖峰时预设降级策略,被动降级在服务故障时自动触发降级。

依赖管理的原则是什么?

依赖管理的原则包括去除依赖、弱化依赖和控制依赖,以减少风险和提高系统的稳定性。

如何进行依赖关系的分析?

可以通过工具扫描、人工整理和代码分析等方法,识别服务之间的依赖关系和强弱分类。

强弱依赖管理的实施过程是什么?

实施过程包括确认依赖关系、分析依赖数据、制定优化计划和持续改善。

🏷️

标签

➡️

继续阅读