这是我参与「第三届青训营 -后端场」笔记创作活动的的第五篇笔记。
正文
演变历史
单体架构
优势:性能最高,冗余小
劣势:debug困难,模块相互影响,模块、开发流程问题
垂直架构
优势:业务独立开发维护
劣势:不同业务存在冗余,每个业务还是单体
分布式架构
优势:业务无关的独立服务
劣势:服务模块bug可导致全站瘫痪,调用关系复杂,不同服务冗余
SOA架构
优势:服务注册,,小的服务代码少,bug也少,易于测试,易于维护,也更容易不断迭代完善。
劣势:整个系统设计是中心化,需要从上至下设计,重构困难
微服务
优势:开发效率,业务独立设计,自下而上,故障隔离。
劣势:治理、运维难度,观测挑战、安全性、分布式系统
微服务架构核心要素
微服务架构中典型的稳定性治理功能
-
限流
-
熔断
-
过载保护
-
降级
重试的意义
重试的难点
幂等性:多次请求可能造成数据不一致
重试风暴:随着调用深度的增加,重试次数会指数级上涨
超时设置:假设调用正常1s的超时时间,如果允许一次重试,那么第一次请求经过多少时间时,才开始重试呢?