这是我参与「第五届青训营 」伴学笔记创作活动的第8天
系统架构演变
- 单体架构:所有模块在一起,debug严重
- 垂直应用架构:单体架构上改进,使业务分开但同上问题仍然存在。
- 分布式架构:设置服务模块将公共模块从业务中分离,
- SOA架构:设置服务注册中心
- 微服务架构:彻底服务化
微服务架构的三大要素
- 服务治理
- 可观测性
- 安全
微服务架构原理及特征
微服务架构中的基本概念及组件
服务:一组具有相同逻辑的运行实体。 实例:一个服务中,每个运行实体即为一个实例。 实例与进程的关系:实例与进程之间没有必然对应关系,可以一个,实例可以对应一个或多个进程(反之不常见)。 集群:通常指服务内部的逻辑划分,包含多个实例。 常见的实例承载形式:进程,VM.... 有状态/无状态服务:服务的实例是否存储了可持久化的数据
服务间通信
RPC、HTTP 知道指定的远程的ip port,进行数据传输。
服务注册及服务发现
解决思路:新增一个统一的服务注册中心,用于存储服务名到服务实例的映射。
核心服务治理功能
-
服务发布:即指让一个服务升级运行新的代码的过程。
-
蓝绿部署:稳定但需要两倍资源
-
灰度发布(金丝雀发布)
流量治理
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确控制。
负载均衡
Round Robin Ring Hash Random
稳定性治理
线上服务总是会出问题的,这与程序的正确性无关。
- 限流
- 熔断
- 过载保护
- 降级