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

122 阅读2分钟

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

本堂课的重点

  • 敦服务架构的背景由来、架构概览、基本要素
  • 微服务架构的基本组件、工作原理、流量特征
  • 核心的服务治理功能,包括流量治理、服务均衡、稳定性治理

微服务概览

image.png

微服务核心要素

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

微服务架构原理及特征

基本概念

服务(service)

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

实例( instance)

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

实例与进程的关系

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

集群(cluster)

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

常见的实例承载形式

进程、VM、k8s pod …..

有状态/无状态服务

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

image.png

服务间通信

对于单体服务,不同模块通信只是简单的函数调用。对于微服务,服务间通信意味着网络传输。

image.png

服务注册及发现

新增一个统一的服务注册中心,用于存储服务名到服务实例的映射。

image.png

服务实例上线及下线过程

image.png

流量特征

  • 统—网关入口
  • 内网通信多数采用RPC
  • 网状调用链路 image.png

核心服务治理功能

服务发布

服务发布(deployment),即指让一个服务升级运行新的代码的过程。

服务不可用

image.png

服务抖动

image.png

服务回滚

image.png

流量治理

在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确控制。

image.png

负载均衡

负载均衡(Load Balance)负责分配请求在每个下游实例上的分布。

常见的LB策略

  • Round Robin
  • Random
  • Ring Hash
  • Least Request

image.png

稳定性治理

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

微服务架构中典型的稳定性治理功能

  • 限流

image.png

  • 熔断

image.png

  • 过载保护

image.png

  • 降级

image.png

个人总结

经过这一天的学习,我学习到GO语言中微服务架构的理念,对内部的架构的治理方案有了认知。