微服务架构介绍 | 青训营笔记

45 阅读2分钟

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

微服务架构介绍

系统架构演变历史

单体架构

2.jpg 优势:

  1. 性能最高
  2. 冗余小

劣势

  1. debug困难
  2. 模块相互影响
  3. 模块分工、开发流程

垂直应用架构

3.jpg

按照业务线垂直划分

优势

  1. 业务独立开发维护

劣势

  1. 不同业务存在冗余
  2. 每个业务还是单体

分布式架构

4.jpg

抽出业务无关的公共模块

优势

  1. 业务无关的独立服务

劣势

  1. 服务模块bug可导致全站瘫痪
  2. 调用关系复杂
  3. 不同服务冗余

SOA架构(Service Oriented Architecture)

5.jpg

面向服务

优势

  1. 服务注册

劣势

  1. 整个系统设计是中心化的
  2. 需要从上至下设计
  3. 重构困难

微服务架构

6.jpg

彻底服务化

优势

  1. 开发效率
  2. 业务独立设计:这种架构使每个服务都能够由专注于该服务的团队独立开发。开发人员可以自由选择任何有用的技术,只要该服务符合API要求。
  3. 自下而上
  4. 故障隔离

劣势

  1. 治理、运维难度
  2. 观测挑战
  3. 安全性:微服务器的另一个挑战是分区数据库架构。更新多个业务实体的业务交易是相当普遍的。但是,在基于微服务器的应用程序中,您需要更新不同服务所拥有的多个数据库。
  4. 分布式系统:微服务器的另一个主要缺点是分布式系统而产生的复杂性。开发人员需要选择和实现基于消息传递或RPC的进程间通信机制。

微服务架构概览

7.jpg

微服务核心要素

服务治理

  • 服务注册
  • 服务发现
  • 负载均衡
  • 扩缩容
  • 流量治理
  • 稳定性治理

可观测性

  • 日志采集:可观测性
  • 日志分析:可观测性
  • 监控打点
  • 监控大盘
  • 异常报警
  • 链路追踪:跨机器链路追踪

安全

  • 身份验证
  • 认证授权
  • 访问令牌
  • 审计
  • 传输加密
  • 黑产攻击