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

114 阅读2分钟

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

一、微服务架构介绍

系统架构演变历史

单体架构

优势:性能最高、冗余小

劣势:debug困难、模块相互影响、开发流程

垂直应用架构

优势:业务独立开发维护

劣势:不同业务单体且存在冗余

垂直应用架构.png 分布式架构

优势:业务无关的独立服务

劣势:服务模块bug可导致全站瘫痪、调用关系复杂、不同服务冗余

分布式架构.png

SOA架构(Service Oriented Architecture)

优势:服务注册

劣势:中心化、从上至下设计、重构困难

SOA架构.png

微服务架构

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

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

微服务架构.png

微服务架构核心要素

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

二、微服务架构原理及特征

服务注册及发现

hardcode

hardcode的方式下指定下游实例地址的问题

服务有多个实例,没法hardcode,不同服务实例ip port本身是动态变化的,无法实现

DNS

问题:

  • 本地DNS存在缓存、导致延时
  • 负载均衡问题
  • 不支持服务实例的探活检查
  • 域名无法配置端口

解决思路:

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

服务注册及发现.png

流量特征

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

三、核心服务治理功能

服务发布

即指让一个服务升级运行新的代码的过程

服务发布的难点

服务不可用、服务抖动、服务回滚

灰度发布(金丝雀发布)

uTools_1675522295198.png

流量治理

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

负载均衡

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

常见LB策略

  • Round Robin
  • Random
  • Ring Hash
  • Least Request

五、课后人个总结

通过今天的学习我了解到了分布式理论的进一步发展——微服务架构原理与治理实践