这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
对课程中学到的重要知识点做了笔记,方便后续的回顾
1. 微服务架构介绍
1.1. 系统架构的演进历史
单体架构 垂直应用架构 分布式架构 SOA架构 微服务架构
1.2. 微服务架构的三大要素
1.2.1 服务治理
- 服务注册
- 服务发现
- 负载均衡
- 扩缩容
- 流量治理
- 稳定性治理
1.2.2 可观测性
- 日志采集
- 日志分析
- 监控打点
- 监控大盘
- 异常报警
- 链路追踪
1.2.3 安全
- 身份验证
- 认证授权
- 访问令牌
- 审计
- 传输加密
- 黑产攻击
2. 微服务架构原理及特征
2.1 基本概念
- 服务(service) 一组具有相同逻辑的运行实体 一个服务运行相同的代码
- 实例(instance) 一个服务中,每个运行实体即为一个实例。 运行同一份代码的多个实例
- 实例与进程的关系 实例与进程之间没有必然对应关系,可以一个实例可以对应一个或多个进程(反之不常见)。
- 集群(cluster) 通常指服务内部的逻辑划分,包含多个实例。
- 常见的实例承载形式 进程、VM、k8s pod …
- 有状态/无状态服务 服务的实例是否存储了可持久化的数据(例如磁盘文件)。
- 服务间通信 对于单体服务,不同模块通信只是简单的函数调用。对于微服务,服务间通信意味着网络传输。
2.2 服务注册及发现
问题:
- 在代码层面,如何指定调用一个目标服务的地址(ip:port) ? DNS来解决存在问题
- 本地DNS存在缓存,导致延时。
- 负载均衡问题。
- 不支持服务实例的探活检查。
- 域名无法配置端口。 解决思路:
- 新增一个统一的服务注册中心,用于存储服务名到服务实例的映射。
2.3 流量特征
- 统一网关入口
- 内网通信多数采用RPC
- 网状调用链路
课后个人总结
了解了微服务的主要概念和特征