这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
一、微服务架构
核心要素:
二、微服务架构原理及特征
1、基本概念
相同逻辑指一组服务运行同一段代码。
2、服务注册与发现
三、服务治理
1、服务发布
服务发布的难点:
-
服务不可用
-
服务抖动
-
服务回滚
蓝绿部署:简单、稳定,但需要两倍资源
灰度发布(金丝雀发布):以实例为维度,不停地切流量。回滚也很复杂。
2、流量治理
基于地区、集群、实例、请求等维度
3、负载均衡
4、稳定性治理
限流:限制过大的流量
熔断:无法连接时,熔断器直接拒绝上游流量,稍后尝试重连
过载保护:
降级:处理高等级请求,低等级直接拒绝(如内部用户测试的请求)
四、字节跳动服务治理实践
1、重试的意义
本地调用没有重试必要,远程函数调用有必要。
重试可以避免偶发的错误,提高SLA(服务等级协议)。
2、重试的难点
幂等性:
重试风暴:容易引起调用链路中的下游服务发生重试风暴
超时设置:很难设置多久重试一次
3、重试策略
限制重试比例:大部分成功的情况下才能重试
防止链路重试:
对冲请求:Hedged requests