【day9】微服务框架-不变的基建 | 青训营笔记

52 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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:针对延迟高的请求,重新向另一个下游实例发送一个相同的请求,并等待先到达的响应