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

70 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天 微服务架构是当代大多数互联网公司的标准架构。

  • 系统架构的演进历史

    • 单体架构
    • 垂直应用架构
    • 分布式架构
    • SOA架构
    • 微服务架构
  • 微服务架构的三大要素

    • 服务治理:服务注册、服务发现、负载均衡、扩缩容、流量治理、稳定性治理
    • 可观测性:日志采集、日志分析、监控打点、监控大盘、异常报警、链路追踪
    • 安全:身份验证、认证授权、访问令牌、审计、传输加密、黑产攻击

服务:一组具有相同逻辑的运行实体 实例:一个服务中每个运行实体即为一个实例 实例与进程的关系:实例与进程之间没有必然对应关系,可以一个实例对应一个或多个进程。 集群:通常指服务内部的逻辑划分,包含多个实例。 常见的实例承载形式:进程、VM、k8s、pod等 服务间通信:对于单体服务,不同模块通信只是简单的函数调用;对于微服务,服务间通信意味着网络传输。

服务注册及服务发现

  • 基本问题

    • 服务间调用中,如何指定下游服务实例的地址?
  • 简单方案

    • 直接指定 ip:port?

      • 没有任何动态能力
      • 有多个实例下游实例怎么办?
    • 使用 DNS?

      • 本地 DNS 存在缓存,导致延迟
      • DNS 没有负载均衡
      • 不支持服务探活检查
      • DNS 不能指定端口
  • 服务注册发现

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

    • 统一网关入口

    • 外网通信多数采用 HTTP,内网通信多数采用 RPC(Thrift, gRPC)