这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
本文将着重介绍微服务架构的核心服务治理功能的相关知识,侧重于流量治理、服务均衡、稳定性治理三个方面
核心服务治理功能 — 流量治理、服务均衡、稳定性治理
1. 服务发布
服务发布(deployment),即指让一个服务升级运行新的代码的过程。
1.1 服务发布的难点
服务不可用
服务抖动
服务回滚
蓝绿部署
简单、稳定;但需要两倍资源
灰度发布(金丝雀发布)
金丝雀(canary)对瓦斯及其敏感。17世纪时,英国旷工在下井前会先放入一只金丝雀、以确保矿并中没有瓦斯。
回滚难度大,基础设施要求高
2. 流量治理
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确控制。
3. 负载均衡
负载均衡(Load Balance)负责分配请求在每个下游实例上的分布
- 常见的 LB 策略:
- Round RobinRandom
- Ring Hash
- Least Request
- ……
4. 稳定性治理
线上服务总是会出问题的,这与程序的正确性无关。
- 网络攻击
- 流量突增
- 机房断电
- 光纤被挖
- 机器故障
- 网络故障
- 机房空调故障
- ……
微服务架构中典型的稳定性治理功能
限流
熔断
过载保护
降级
5. 总结
- 服务发布:蓝绿部署、灰度发布
- 基于地区、集群、实例、请求等维度的流量治理功能
- 几种常见的负载均衡策略
- 微服务架构中的稳定性治理功能
个人总结
微服务化的架构给系统带来了很多好处,但同时也带来了一些技术上的挑战。 这些挑战包括服务注册与发现、负载均衡、监控管理、发布升级、访问控制等。而服务治理就是对这些问题进行管理和预防,保证系统持续平稳地运行。在云原生时代, Service Mesh 的出现又把服务治理的话题带入一个新的阶段。