微服务架构原理与治理实践 | 青训营笔记

90 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第三篇笔记

学习手册:juejin.cn/post/709966…

ppt:bytedance.feishu.cn/file/boxcnP…

一、微服务架构介绍

系统架构的演变历史

image.png

微服务架构的整体概览

image.png 微服务架构中的核心要素

image.png

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

基本概念:

  • 服务:一组具有相同逻辑的运行实体
  • 实例:一个服务中,每个运行实体即为一个实例
  • 实例与进程的关系:实例与进程之间没有必然对应关系,可以一个实例可以对应一个或多个进程
  • 集群:通常指服务内部的逻辑划分,包含多个实例
  • 常见的实例承载形式:进程、VM、k8s pod...
  • 有状态/无状态服务:服务的实例是否存储了可持久化的数据

服务注册及发现:新增一个统一的服务注册中心用于存储服务名到服务实例的映射

流量特性

image.png

三、核心服务治理功能

服务发布

难点:

  • 服务不可用
  • 服务抖动
  • 服务回滚

发布方式:

  • 蓝绿部署
  • 灰度发布(金丝雀发布)

流量治理

在微服务架构下,可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确控制

负载均衡

负责分配请求在每个下游实例上的分布

稳定性治理

image.png

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

重试的难点:

  • 幂等性:多次请求可能会造成数据不一致
  • 重试风暴:随着调用深度的增加,重试次数会指数级上涨
  • 超时设置:假设一个调用正常是1s的超时时间,如果允许一次重试,那么第一次请求经过多少时间进行重试呢?