这是我参与「第五届青训营」伴学笔记创作活动的第 9 天
前置
背景: 互联网爆炸性发展,用户数量增多;硬件设施快速发展,需求复杂性多样化、开发人员增加、计算机理论技术的发展。这都在一定程度上推进了架构演进。
微服务架构基础模型
概念
基础名词
- 服务:一组有相同逻辑的运行实体
- 实例:一个服务中,每个运行实体(Entity)即为一个实例(运行时)
- 实例与进程的关系:一个实例可以对应一个或多个进程
- 集群(cluster):通常指服务内部的逻辑划分,包含多个实例。
- 常见实例承载类型:进程、VM、k8s、pod...
- 有状态/无状态服务:服务的实例是否存储了可持久化的数据(如:磁盘文件等)
服务间通信
对于微服务,通信意味着网络传输。
微服务遇到的问题与解决方案
- 本地DNS存在缓存,导致延时
- 负载均衡问题
- 不支持服务实例的探活检查
- 域名无法配置端口
解决思路:新增一个统一的服务注册中心,用于存储服务名到服务实例的映射。
服务实例上下线过程:
核心服务治理功能
服务发布的难点
- 服务不可用
- 服务抖动
- 服务回滚
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由和路径进行精确控制。