微服务框架 | 青训营笔记

63 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第9天

一. 重点内容

  • 微服务架构介绍

  • 微服务架构原理及特征

  • 核心服务治理功能

二. 知识点介绍

1. 微服务架构

  • 单体架构
    • 优势:性能最高;冗余小
    • 劣势:debug困难
  • 垂直应用架构
    • 优势:业务独立开发维护
    • 劣势:不同业务存在冗余;每个业务还是单体
  • 分布式架构
    • 优势:业务无关的独立服务
    • 劣势:服务模块bug有可能导致全站瘫痪;调用关系复杂;不同服务冗余
  • SOA架构(Service Oriented Architecture)
    • 优势:服务注册
    • 劣势:整个系统设计是中心化的;需要从上而下设计;重构困难

  • 微服务架构
    • 优势:开发效率高;业务独立设计;自下而上;故障隔离
    • 劣势:治理、运维难度高;观测挑战;安全性;分布式系统
    • 核心要素:
      • 服务治理:服务注册;负载均衡;流量治理...
      • 可观测性:日志采集;日志分析;异常报警;链路追踪...
      • 安全:身份验证;认证授权;访问令牌;传输加密...

2. 微服务架构原理及特征

  • 架构:一组具有相同逻辑的运行实体
  • 实例:一个服务中,每个运行实体即为一个实例
  • 实例进程的关系:没有必然对应关系,可以一对多,反之不亦然
  • 集群:服务内部的逻辑划分,也包含多个实例
  • 常见的实例承载形式:进程、VM、k8spod
  • 有状态/无状态服务:服务的实例是否存储了可持久化的数据,例如磁盘文件
  • 流量特征
    • 统一网关入口
    • 内网通信多数采用RPC
    • 网状调用链路

3. 核心服务治理功能

  • 服务发布:让一个服务升级运行新的代码的过程
    • 难点:服务不可用;服务抖动;服务回滚
    • 蓝绿部署:分成两部分先后发布,简单稳定但需要两倍资源
    • 灰度发布(金丝雀发布):先发布少部分实例,逐步增加发布比例;不需要增加资源;回滚难度大,基础设施要求高
  • 流量治理
    • 流量控制:在微服务架构中,可以从各个维度对端到端的流量在链路上进行精确控制
    • 控制维度:地区;集群;实例;请求
  • 负载均衡(Load Balance):负责分配请求在每个下游实例上的分布
    • 常见LB策略:Round Robin;Random;Ring Hash...
  • 稳定性治理:线上服务难免有问题,与程序正确性无关,例如网络攻击、流量突增、网络故障等
    • 方式:限流、熔断、过载保护、降级