这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
本课程内容主要分为以下4个方面:
1.微服务架构介绍:微服务架构的背景由来、架构概览、基本要素
2.微服务架构原理及特征:微服务架构的基本组件、工作原理、流量特征
3.核心服务治理功能:核心的服务治理功能,包括流量治理、服务均衡、稳定性治理
4.字节跳动服务治理实践:字节跳动在微服务架构稳定性治理中,对请求重试策略的探索及实践
课程1-微服务架构原理及特征
单体架构->垂直应用架构->分布式架构->SOA架构->微服务架构
1.单体架构
优势:
A.性能最高
B.冗余小
劣势:
A.debug困难
B.模块相互影响
C.模块分工,开发流程
2.按业务线垂直划分
优势:
a.业务独立开发维护
劣势:
a.不同业务存在冗余
B.每个业务还是单体
3.分布式架构
优势:
a.业务无关的独立服务
劣势:
a.服务模块bug可导致全站瘫痪
B.调用关系复杂
c.不同服务冗余
4.SOA架构
优势:
a.服务注册
劣势:
a.整个系统设计是中心化的
B.需要从上至下设计
C.重构困难
5.微服务架构
优势:
a.开发效率
b.业务独立设计
c.自下而上
d.故障隔离
劣势:
A.治理、运维难度
b.观测挑战
C.安全性
D.分布式系统
微服务的核心要素
1.服务治理
a.服务注册
b.服务发现
c.负载均衡
D.扩缩容
E.稳定性治理
2.可观测性
a.日志采集
b.日志分析
C.监控打点
D.监控大盘
e.异常报警
f.链路追踪 3.安全
a.身份授权
b.认证授权
c.访问令牌
d.审计
e.传输加密
F.黑产攻击
课程2-核心服务治理功能
1.服务发布
存在的问题:
A.服务不可用
B.服务抖动
C.服务回滚
解决方法:
A.蓝绿部署:简单稳定;但需要两倍资源
B.灰度发布【金丝雀发布】:需要频繁修改服务注册中心的表;回滚困难
2.流量治理
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行修改
3.负载均和
负载均衡负责分配请求在每个下游实例上的分布
4.稳定性治理
线上服务总是会出问题,这与程序的正确性无关
a.网络攻击
b.流量突增
c.机房断电
d.光纤被挖
e.机器故障
f.网络故障
g.机房空调故障
稳定性治理:
a.限流
b.熔断
c.过载保护
d.降级
课程3-字节跳动服务治理实践
1.重试的意义
a.降低错误率
b.降低长尾延时
c.容忍暂时性错误
d.避免下游故障实例
2.重试的难点
a.幂等性
b.重试风暴
c.超时设置
3.重试策略
a.限制重试比例
b.防止链路重试
c.hedged requests:针对延迟高的请求,重新向另一个下游实例发送一个相同的请求,并等待先到达的响应