微服务(一)| 青训营笔记

99 阅读2分钟

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

微服务

微服务架构介绍

演变

由于:

  • 互联网的爆炸性发展
  • 硬件设施的快速发展
  • 需求复杂性的多样化
  • 开发人员的急剧增加
  • 计算机理论及技术的发展

系统架构发生了以下演变:

单体架构 -> 垂直应用架构 -> 分布式架构 -> SOA架构 ->微服务架构

架构优劣

单体架构

  • 优势:性能最高;冗余小
  • 劣势:debug困难;模块相互影响;模块分工、开发流程

垂直应用架构(按照业务线垂直化分)

  • 优势:业务独立开发维护
  • 劣势:不同业务存在冗余;每个业务还是单体

分布式架构(抽出业务无关的公共模块)

  • 优势:业务无关的独立服务
  • 劣势:服务模块bug导致全站瘫痪;调用关系复杂;不同服务冗余

SOA(面向服务)

  • 优势:服务注册
  • 劣势:系统设计中心化;从上至下设计;重构困难

微服务(彻底的服务化)

  • 优势:开发效率;业务独立设计;自下而上;故障隔离
  • 劣势:治理、运维难度;观测挑战;安全性;分布式系统

微服务架构的核心要素

  • 服务治理
  • 客观测性
  • 安全

微服务架构原理特征

基本概念

  • 服务:一组具有相同逻辑的运行实体
  • 实例:一个服务中的每个运行实体
  • 集群:服务内部的逻辑划分,包含多个实例
  • 有状态/无状态服务:是否存储可持久化的数据
  • 服务间通信:单体服务为函数调用;微服务通信意味着网络传输

服务注册及发现

问题:如何指定调用一个目标服务的地址:

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

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

流量特征

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