微服务架构原理课程笔记 | 青训营

54 阅读3分钟

微服务架构原理与治理实践

  • 为什么学?——微服务架构是当前大多数互联网公司的标准架构
  • 学到什么?——微服务架构的由来及原理;服务治理功能是如何工作的

微服务架构介绍

系统架构演变历史

单体架构:all in one,性能高,冗余小;debug困难,耦合度高 垂直应用架构:按照业务线垂直划分,业务独立开发维护;不同业务存在冗余,每个业务仍是单体 分布式架构:抽出业务无关的公共模块,业务无关的独立服务;服务模块bug会导致全站瘫痪,调用关系复杂,不同服务冗余 SOA-Service Oriented Architecture-架构:面向服务,服务注册;系统设计中心化,需自上而下设计,重构困难 微服务架构:彻底服务化,开发效率高,业务独立设计,自下而上,故障隔离;治理、运维难度高,安全性难保证,分布式系统本身复杂

微服务架构核心要素

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

微服务架构原理及特征

基本概念

  • Service-服务,一组具有相同逻辑的运行实体
  • Instance-实例,一个服务中,每个运行实体即为一个实例
  • 实例与进程的关系:无必然对应关系,可以一个实例对应一个或多个进程(反之不常见)
  • Cluster-集群,通常指服务内部的逻辑划分,包含多个实例
  • 服务间通信:对于单体服务,不同模块通信只是简单的函数调用;对于微服务,服务间通信意味着网络传输

服务注册及发现

问题:在代码层面,如何指定调用一个目标服务的地址(ip:port)? DNS?本地DNS存在缓存,导致延时;负载均衡问题;不支持服务实例的探活检查;域名无法配置端口 解决思路:新增一个统一的服务注册中心,用于存储服务名到服务实例的映射

流量特征

  • 统一网关入口
  • 内网通信多数采用RPC
  • 网状调用链路

核心服务治理功能

服务发布

  • 定义:Deployment-服务发布,即让一个服务升级运行新代码的过程
  • 难点:服务不可用,服务抖动,服务回滚
  • 蓝绿部署、灰度发布(金丝雀发布)、

流量治理

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

负载均衡

  • Load Balance-负载均衡,负责分配请求在每个下游实例上的分布
  • 常见LB策略:Round Robin, Random, Ring Hash, Least Request……

稳定性治理

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