这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记
今天这节课老师从宏观的角度剖析了微服务架构下的服务治理
架构的多种模式
- 单体架构
- 垂直应用架构
- 分布式架构
- SOA架构
- 微服务架构 现在市面上采用的较多架构
微服务架构的核心要素
- 服务治理
- 可观测性
- 安全性
引入一个新的设计架构思想会有很多的有点,同时也有一定的缺陷
选择微服务架构的的优势:\
- 开发的效率提高
- 服务拆分,职责明确
- FaultTolerance
- Latency
微服务内的精华设计就是“服务间的通信”以及“服务注册及发现” 一般不要将配置与代码耦合,也不要写死服务地址和端口
微服务内的流量特征
- 统一的Gateway
- 服务内网采用RPC通信
- 内网的服务是多级链式调用的
服务治理:
-
服务的发布 在发布的过程中需要避免的三个问题 1.服务不可用,2.服务抖动,3.服务回滚
-
蓝绿部署 保证服务的稳定与可用,但是需要两倍的服务器资源
3.灰度发布,也叫做金丝雀发布 特点就是一个实例一个实例的上线服务。这样的发布模式使得我们对流量的控制可以十分精确。
LoadBalance: 1.LB的意思就是将请求合理的分配到下游的服务器上 常见的LB策略有:随机 RoundRobin 哈希环 LeastRequesr
稳定性治理
逻辑上发生了不可用,例如 网络攻击,流量突增
物理上发生了不可用,例如 机房断电,光纤挖断 机房相关物理设备故障
应对措施 限流 熔断 降级 OverLoading Protect
BD中微服务治理 重试 ReTry,前提是这次请求是幂等的,也要防止重试风暴 重试可以降低错误率 降低长尾延迟 可以容忍暂时性的错误(网络突然抖动了) 避开下游发散故障的服务器