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

101 阅读2分钟

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

从组件的维度看微服务架构的整体视角

微服务架构核心要素

  • 服务治理
  • 可观测性
  • 安全

与dns类似,需要引入中间层 基于服务发现来实现服务实例上下线流程

假设要下线service B的实例3,不能直接下线,因为还有流量

微服务架构中的基本概念及组件

  • 服务

    • 一组具有相同逻辑的运行实体
  • 实例

    • 一个服务中的每个运行实体
  • 实例与进程的关系

    • 没有必然对应关系,一般一对一或者一对多
  • 常见的实例承载形式

强调连接的概念、“请求”

api gateway可以作身份认证,进而将token附在请求上

服务、实例的概念;服务发现中间层;平滑无损的基于服务发现的实例上下线过程;基本流量特征

服务注册发现
-   新增一个统一的服务注册中心,用于存储服务名到服务实例之间的映射关系
-   旧服务实例下线前,从服务注册中心删除该实例,下线流量
-   新服务实例上线后,在服务注册中心注册该实例,上线流量

字节跳动实例

  • 本地函数调用

    • 通常没有重试意义
  • 远程函数调用

    • 网络抖动、下游负载高、下游机器宕机......
    • 重试是有意义的,可以避免偶发性的错误,提高 SLA
  • 重试的意义

    • 降低错误率
    • 降低长尾延时
    • 容忍暂时性错误
    • 避开下游故障实例

本地函数调用基本没有重试的必要

重试的意义
  1. 避免偶发的错误,提高sla(service-level agreement)
  2. 降低长尾延时
  3. 容忍暂时性错误
  4. 避开下游故障实例
重试的难点
  • 幂等性

  • 重试风暴

  • 超时设置