微服务架构原理及特征 | 青训营笔记

73 阅读2分钟

微服务架构——原理及特征 | 青训营笔记

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

1. 微服务原理及特征

1.1 系统架构

  • 单体架构:软件的自然形态,所有的逻辑统一处理,一定程度上来说冗余最小,性能最高,但其核心业务与边缘业务混合,模块耦合严重,不易维护
  • 垂直应用架构:按照业务线垂直划分,业务独立的开发和维护,业务之间存在冗余,本质上每个业务也还是一个单体架构
  • 分布式架构:抽出业务无关的公共模块,形成一个与业务无关的独立服务层(服务:一组具有相同逻辑的运行实体),调用关系复杂,服务之间还是存在冗余
  • SOA架构(service oriented architecture):面向服务,多了一个服务注册中心,用于服务解耦,但设计上还是从上至下,重构困难
  • 微服务架构:彻底的服务化,业务独立设计,自下而上设计,拆分粒度细,故障隔离,运维难度增加,面临诸多安全考验

1.2 微服务架构核心要素

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

1.3 服务间通信

单体服务:不同模块之间通过简单的函数调用实现 微服务:服务间通信通过网络传输(依靠不同的协议http\gRPC\Thrift)

服务注册及发现: 解决问题: hard code,通过ip和端口硬编码,问题点:延时高(本地DNS存在缓存),负载均衡问题,不支持实例的探活检测,域名无法配置端口 解决方案: 新增一个统一的服务注册中心,用于存储服务名到服务实例的映射,对于注册的实例进行health check,定时进行服务的上线和下线过程

流量特征:

  • 统一网关入口
  • 内网通信多数采用RPC(Http是文本协议,传输效率较低,而RPC是二进制传输协议)
  • 网状调用链路