微服务 — 核心服务治理功能 | 青训营笔记

68 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天

本文将着重介绍微服务架构的核心服务治理功能的相关知识,侧重于流量治理、服务均衡、稳定性治理三个方面

核心服务治理功能 — 流量治理、服务均衡、稳定性治理

1. 服务发布

服务发布(deployment),即指让一个服务升级运行新的代码的过程。

1.1 服务发布的难点

服务不可用

image.png

服务抖动

image.png

服务回滚

image.png

蓝绿部署

简单、稳定;但需要两倍资源

image.png

image.png

image.png

image.png

image.png

image.png

灰度发布(金丝雀发布)

金丝雀(canary)对瓦斯及其敏感。17世纪时,英国旷工在下井前会先放入一只金丝雀、以确保矿并中没有瓦斯。

回滚难度大,基础设施要求高

image.png

2. 流量治理

在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确控制。

image.png

3. 负载均衡

负载均衡(Load Balance)负责分配请求在每个下游实例上的分布

  • 常见的 LB 策略:
    • Round RobinRandom
    • Ring Hash
    • Least Request
    • ……

4. 稳定性治理

线上服务总是会出问题的,这与程序的正确性无关。

  • 网络攻击
  • 流量突增
  • 机房断电
  • 光纤被挖
  • 机器故障
  • 网络故障
  • 机房空调故障
  • ……

微服务架构中典型的稳定性治理功能

限流

image.png

熔断

image.png

过载保护

image.png

降级

image.png

5. 总结

  • 服务发布:蓝绿部署、灰度发布
  • 基于地区、集群、实例、请求等维度的流量治理功能
  • 几种常见的负载均衡策略
  • 微服务架构中的稳定性治理功能

个人总结

微服务化的架构给系统带来了很多好处,但同时也带来了一些技术上的挑战。 这些挑战包括服务注册与发现、负载均衡、监控管理、发布升级、访问控制等。而服务治理就是对这些问题进行管理和预防,保证系统持续平稳地运行。在云原生时代, Service Mesh 的出现又把服务治理的话题带入一个新的阶段。

引用参考

  1. 课程视频
  2. 课程学习资料
  3. juejin.cn/post/719438…
  4. 蓝绿部署
  5. 灰度发布