微服务架构原理 | 青训营笔记

54 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第五篇笔记。

正文

演变历史

单体架构

优势:性能最高,冗余小

劣势:debug困难,模块相互影响,模块、开发流程问题

image (7).png

垂直架构

优势:业务独立开发维护

劣势:不同业务存在冗余,每个业务还是单体

image (8).png

分布式架构

优势:业务无关的独立服务

劣势:服务模块bug可导致全站瘫痪,调用关系复杂,不同服务冗余

image (9).png

SOA架构

image (11).png 优势:服务注册,,小的服务代码少,bug也少,易于测试,易于维护,也更容易不断迭代完善。

劣势:整个系统设计是中心化,需要从上至下设计,重构困难

image (10).png

微服务

优势:开发效率,业务独立设计,自下而上,故障隔离。

劣势:治理、运维难度,观测挑战、安全性、分布式系统

image (11).png

微服务架构核心要素

image (11).png

image (11).png

微服务架构中典型的稳定性治理功能

  • 限流

  • 熔断

  • 过载保护

  • 降级

重试的意义

image (12).png

重试的难点

幂等性:多次请求可能造成数据不一致

重试风暴:随着调用深度的增加,重试次数会指数级上涨

超时设置:假设调用正常1s的超时时间,如果允许一次重试,那么第一次请求经过多少时间时,才开始重试呢?