从 0 开始学微服务
胡忠想
微博技术专家
64643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

09 | 微服务治理的手段有哪些?

思考题
服务治理手段
微服务治理的手段

该思维导图由 AI 生成,仅供参考

上一期我给你讲述了服务追踪的基本原理,有了分布式服务追踪系统,在服务出现问题的时候,我们就可以定位服务哪里出现了问题。一般单体应用改造成微服务架构后,还会增加哪些问题呢?又该如何应对呢?
前面我讲到单体应用改造为微服务架构后,服务调用由本地调用变成远程调用,服务消费者 A 需要通过注册中心去查询服务提供者 B 的地址,然后发起调用,这个看似简单的过程就可能会遇到下面几种情况,比如:
注册中心宕机;
服务提供者 B 有节点宕机;
服务消费者 A 和注册中心之间的网络不通;
服务提供者 B 和注册中心之间的网络不通;
服务消费者 A 和服务提供者 B 之间的网络不通;
服务提供者 B 有些节点性能变慢;
服务提供者 B 短时间内出现问题。
可见,一次服务调用,服务提供者、注册中心、网络这三者都可能会有问题,此时服务消费者应该如何处理才能确保调用成功呢?这就是服务治理要解决的问题。
接下来我们一起来看看常用的服务治理手段

节点管理

根据我的经验,服务调用失败一般是由两类原因引起的,一类是服务提供者自身出现问题,如服务器宕机、进程意外退出等;一类是网络问题,如服务提供者、注册中心、服务消费者这三者任意两者之间的网络出现问题。
无论是服务提供者自身出现问题还是网络发生问题,都有两种节点管理手段。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了微服务治理的关键问题,着重介绍了节点管理、负载均衡、服务路由和服务容错等常用的服务治理手段。节点管理通过注册中心主动摘除机制和服务消费者摘除机制来处理服务提供者节点异常和网络异常问题。负载均衡算法包括随机算法、轮询算法、最少活跃调用算法和一致性Hash算法,用于选择可用服务节点并充分利用性能。服务路由通过静态配置和动态配置来限定服务节点的选择范围,满足灰度发布和多机房就近访问的需求。服务容错策略包括FailOver、FailBack、FailCache和FailFast,根据调用的幂等性选择合适的策略来保证调用成功。这些服务治理手段能够帮助读者更好地理解微服务架构中的关键问题,并提供了解决方案。文章还提到了在实际微服务架构实践中,这些服务治理手段一般都会在服务框架中默认集成,无需业务代码实现。读者可以通过参考开源服务框架的实现来自行实现服务治理手段。最后,文章提出了思考题,鼓励读者结合自身业务场景思考哪些服务治理手段可能适用,并描述为何这些手段能解决问题。整体而言,本文深入浅出地介绍了微服务治理的关键手段,为读者提供了全面的技术视角和实践思路。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(32)

  • 最新
  • 精选
  • 白鹿
    最少活跃调用法,理想情况下,每个服务提供者的连接数一样多,为什么最适合性能参差不齐的情况?难道不是性能好的连接多,差的连接少,比较好吗?

    作者回复: 性能好的话,连接也释放得快

    2018-09-11
    2
    27
  • 叽歪
    最少活跃方式,按这个来的话,请求都打到性能不好的机器了?不会压死性能不会的机器吗

    作者回复: 正常情况下,性能不好的机器因为处理慢,所以活跃连接数要比性能好的要多,所以按照最少活跃负载均衡算法的话,请求会更少

    2018-09-25
    18
  • taowcdl
    注册中心摘除机制说的是不是有问题 应该是把当前时间和最近一次收到心跳的时间做对比吧 超过一定时间 就摘除吧

    作者回复: 是的,这个说法更严谨一些,感谢指正。

    2018-12-08
    13
  • 面试官问
    路由规则应该是存在配置中心而不是注册中心吧?

    作者回复: 看情况,注册中心也可以存配置,两者可以分开部署也可以部署在一起

    2018-09-11
    5
  • Bobo
    最小活跃数,消费者维护的仅仅是自己与各个提供者的连接数,并不能得知服务提供者的总消费情况,这样子不能均衡吧

    作者回复: 是的,只知道自身的情况,大部分情况下可以反馈整体的情况

    2018-11-29
    4
  • 面试官问
    注册中心和配置中心两者的关注点不同,在微服务架构下一般都是分开的,除非有历史原因,例如淘宝的配置中心是在07,08年服务拆分的时候产生的,当时业界还没有微服务的概念,所以配置中心也是在注册中心里面的,但后来发现两者关注点不同,很快就把配置中心从注册中心中拆分出来了。

    作者回复: 实际线上时一般分开部署,这里先不引入配置中心的概念,专栏后面会专门讲解

    2018-09-12
    2
    3
  • 看不到de颜色
    关于失败节点摘除有点疑惑。如果靠消费者在调用失败后才摘除异常节点的话,那么岂不会降低系统的稳定性。是否应当是注册中心和消费端一起配合进行服务端状态判断呢?

    作者回复: 对于大流量业务来说,调用失败的次数可以忽略,并且灵敏度要高于使用注册中心

    2018-11-18
    2
  • 海洋
    如果是注册中心宕机,有什么机制来保障调用成功率呢?

    作者回复: 后面专栏有细讲

    2018-09-12
    2
  • Master.Zuo
    服务的降级和限流一般是有哪些手段?

    作者回复: 专栏后面会详细讲解

    2018-09-14
    1
  • ...
    您好,问一下,我看举的例子都是java的框架,如果是go语言开发,有什么好的服务治理框架呢?求推荐

    作者回复: 后面专栏会讲,可以了解下gRPC

    2018-09-11
    1
收起评论
显示
设置
留言
32
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部