微服务架构 | 青训营笔记

59 阅读2分钟

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

微服务

  • 系统架构的演变历史:单体架构 => 垂直应用架构=>分布式架构=>SOA架构=>微服务架构

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

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

  • 微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。

    微服务是利用组织的服务投资组合,然后基于业务领域功能分解它们,在看到服务投资组合之前,它还是一个业务领域。

微服务架构的核心要素

  1. 服务治理

    • 服务注册
    • 服务发现
    • 负载均衡
  2. 可观测性

    • 日志采集
    • 日志分析
    • 监控打点
  3. 安全

    • 身份验证
    • 认证授权
    • 访问令牌

基本概念

  • 服务:一组具有相同逻辑的运行实体
  • 实例:一个服务中,每个运行实体即为一个实例
  • 集群:通常指服务内部的逻辑划分,包含多个实例

服务注册与发现

  • 新增一个统一的服务注册中心,用于存储服务名到服务实例的映射
  • 服务上线和下线时,需要更改服务发现的服务数据

核心服务治理功能

  • 服务发布:指让一个服务升级运行新代码的过程

    • 服务发布的难点:服务不可用,服务抖动,服务回滚
    • 蓝绿部署:简单,稳定,但需要两倍的资源
    • 灰度发布(金丝雀发布)
    • 流量治理

    在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端的流量进行治理。

  • 负载均衡

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

  • 稳定性治理

    线上服务总是会出问题的,这与程序的正确性无关。

    网络攻击、流量突增、机房断电、光纤被挖、机器故障、网格故障

    • 稳定性治理功能

      限流、熔断、过载保护、降级