微服务架构 | 青训营笔记

23 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天

一、微服务架构

image.png

image.png

核心要素:

image.png

二、微服务架构原理及特征

1、基本概念

image.png

相同逻辑指一组服务运行同一段代码。

image.png

2、服务注册与发现

image.png

三、服务治理

1、服务发布

服务发布的难点:

  • 服务不可用

  • 服务抖动

  • 服务回滚

蓝绿部署:简单、稳定,但需要两倍资源

image.png

灰度发布(金丝雀发布):以实例为维度,不停地切流量。回滚也很复杂。

2、流量治理

基于地区、集群、实例、请求等维度

3、负载均衡

image.png

image.png

4、稳定性治理

image.png

限流:限制过大的流量

image.png

熔断:无法连接时,熔断器直接拒绝上游流量,稍后尝试重连

image.png

过载保护:

image.png

降级:处理高等级请求,低等级直接拒绝(如内部用户测试的请求)

image.png

四、字节跳动服务治理实践

1、重试的意义

本地调用没有重试必要,远程函数调用有必要。

重试可以避免偶发的错误,提高SLA(服务等级协议)。

image.png

2、重试的难点

幂等性:

重试风暴:容易引起调用链路中的下游服务发生重试风暴

image.png

超时设置:很难设置多久重试一次

3、重试策略

限制重试比例:大部分成功的情况下才能重试

image.png

防止链路重试:

image.png

对冲请求:Hedged requests

image.png