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

81 阅读2分钟

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

微服务架构

  • 系统架构演变历史为什么系统架构需要演进?
    • 互联网的爆炸性发展
    • 硬件设施的快速发展需求
    • 复杂性的多样化
    • 开发人员的急剧增加
    • 计算机理论及技术的发展
  • 系统架构分类
    • 单体架构
    • 垂直应用架构
    • 分布式架构
    • SOA架构
    • 微服务架构

单体架构

image.png all in one process

  • 优势:
    • 性能最高
    • 冗余小
  • 劣势:
    • debug 困难
    • 模块相互影响
    • 模块分工、开发流程

垂直应用架构

image.png 按照业务线垂直划分

  • 优势
    • 业务独立开发维护
  • 劣势:
    • 不同业务存在冗余
    • 每个业务还是单体

分布式架构

image.png 抽出业务无关的公共模块

  • 优势:
    • 业务无关的独立服务
  • 劣势:
    • 服务模块bug可导致全站雍疾
    • 调用关系复杂
    • 不同服务冗余

SOA架构

image.png 面向服务

  • 优势:
    • 服务注册
  • 劣势
    • 整个系统设计是中心化的
    • 需要从上至下设计
    • 重构困难

微服务架构

image.png 彻底的服务化

  • 优势:

    • 开发效率
    • 业务独立设计
    • 自下而上
    • 故障隔离
  • 劣势:

    • 治理、运维难度
    • 观测挑战
    • 安全性
    • 分布式系统

微服务架构核心要素

服务治理

  • 服务注册
  • 服务发现
  • 负载均衡
  • 扩缩容
  • 流量治理
  • 稳定性治理

可观测性

日志采集 日志分析 监控打点 监控大盘 异常报警 链路追踪

安全

身份验证 认证证授 访问令牌 审计 传输加密 黑产攻击

微服务架构基本概念

服务(service)

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

实例(instance)

一个服务中,每个运行实体即为一个实例。

实例与进程的关系

实例与进程之间没有必然对应关系,可以一个实例可以对应一个或多个进程(反之不常见)

集群(cluster)

通常指服务内部的逻辑划分,包含多个实例。

常见的实例承载形式

进程、VM、k8s pod

有状态/无状态服务

服务的实例是否存储了可持久化的数据(例如磁盘文件)。