微服务框架-不变的基建 | 青训营笔记

57 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
对课程中学到的重要知识点做了笔记,方便后续的回顾

1. 微服务架构介绍

1.1. 系统架构的演进历史

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

1.2. 微服务架构的三大要素

1.2.1 服务治理

  1. 服务注册
  2. 服务发现
  3. 负载均衡
  4. 扩缩容
  5. 流量治理
  6. 稳定性治理

1.2.2 可观测性

  1. 日志采集
  2. 日志分析
  3. 监控打点
  4. 监控大盘
  5. 异常报警
  6. 链路追踪

1.2.3 安全

  1. 身份验证
  2. 认证授权
  3. 访问令牌
  4. 审计
  5. 传输加密
  6. 黑产攻击

2. 微服务架构原理及特征

2.1 基本概念

  1. 服务(service) 一组具有相同逻辑的运行实体 一个服务运行相同的代码
  2. 实例(instance) 一个服务中,每个运行实体即为一个实例。 运行同一份代码的多个实例
  3. 实例与进程的关系 实例与进程之间没有必然对应关系,可以一个实例可以对应一个或多个进程(反之不常见)。
  4. 集群(cluster) 通常指服务内部的逻辑划分,包含多个实例。
  5. 常见的实例承载形式 进程、VM、k8s pod …
  6. 有状态/无状态服务 服务的实例是否存储了可持久化的数据(例如磁盘文件)。
  7. 服务间通信 对于单体服务,不同模块通信只是简单的函数调用。对于微服务,服务间通信意味着网络传输。

2.2 服务注册及发现

问题:

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

2.3 流量特征

  1. 统一网关入口
  2. 内网通信多数采用RPC
  3. 网状调用链路

课后个人总结

了解了微服务的主要概念和特征

参考资料

微服务框架 - 不变的基建