美文网首页微服务中间件解决方案
谈谈服务限流和熔断的设计与实现

谈谈服务限流和熔断的设计与实现

作者: 先生zeng | 来源:发表于2019-10-16 11:02 被阅读0次

限流/熔断的目的

  • 微服务化之后,系统分布式部署,系统之间通过rpc框架通信,整个系统发生故障的概率随着系统规模的增长而增长,一个小的故障经过链路传导放大,有可能造成更大的故障。
  • 业务方系统在调用服务时,在一些非关键路径服务发生服务质量下降的情况下,选择尽肯恩恶搞屏蔽所造成的影响。

业务限流和熔断需求

  • 大部分熔断返回默认值(null),也可定制,RPC client原生支持最好,业务方少改代码。
  • 进入熔断时,打印熔断日志,同时能够返回Exception(业务方定制了熔断方法)
  • 服务治理平台可以看到服务的状态,是否降级,是否熔断,可以实时下发阙值配置,可以报警,最好加上异常信息
  • 调用方粒度的确定,接口粒度。
image

服务治理平台可以对服务的一些配置包括限流,降级,阙值等等进行管理。

image

业界方案

  • Netflex OSS Hystrix(这个观法宣布不再更新了)

    • 手动写 Hystrix command 或者有maven插件生成command,在fall back method里面返回null。
    • 业务侵入性大。
    • 加入jar包
      • 额外引入Hystrix jar包
      • 放入rpc框架内
    • 非平台化
      • 客户端直接引用、重启代价
      • 需要做成服务治理平台(而不是jar包,不然调用方还需要关注jar包版本)
  • 优雅的方案

    • RPC Client(实现在这里) + 服务治理平台(具体策略配置所在,实现控制一些函数的熔断,如下图)

      • 基于RPC Client 实现熔断
      • RPC Client 修改创建的proxy,在prxy内部由本地计算统计决定是否熔断
      • 服务治理平台存储降级相关的配置,以及提供上报数据的可视化,报警,配置变更下推等
image

有图有选项:
是否开启熔断机制
是否强制开启熔断
是否强制关闭熔断
滑动窗口时间

交互流程

image
image

自定义fallback

  • 约定fallback的类名

    • 通过注解的形式
  • 约定方法上加了

    fallbackCommand注解才能生效(没加注解的方法不是fallback method)

实现

image

Hystrix方案参考


image

相关文章

  • 谈谈服务限流和熔断的设计与实现

    限流/熔断的目的 微服务化之后,系统分布式部署,系统之间通过rpc框架通信,整个系统发生故障的概率随着系统规模的增...

  • 谈一谈限流算法的几种实现

    保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。今天和大家谈谈限流算法的几种实现方式,本文所说的限流并非是N...

  • 第二章架构设计之技术实践篇(下)

    本章要点 分布式事务设计与实践 服务降级设计 服务限流/熔断设计 服务灰度发布设计 1.分布式事务设计与实践 分布...

  • 谈谈限流算法的几种实现

    占小狼,转载请注明原创出处,谢谢! 保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。今天和大家谈谈限流算法的...

  • 服务限流

    保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。限流可是Nginx接入层面的限流,也可以是服务层面的限流。 ...

  • 第四节 服务的降级、限流、熔断与灰度

    本章要点 服务降级设计 服务限流/熔断设计 服务灰度发布设计 1.服务降级设计 当服务器压力剧增的情况下,根据实际...

  • Spring Cloud Alibaba:Sentinel实现熔

    Spring Cloud Alibaba:Sentinel实现熔断与限流 Spring Cloud Alibaba...

  • 限流算法

    前言 保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。限流包括Nginx层面的限流以及业务代码逻辑上的限流。...

  • 3.6:服务熔断设计

    本文将梳理微服务架构下,服务熔断原理与设计。整体包含以下两部分: 为什么需要服务熔断 Hystrix熔断的设计 为...

  • Hystrix-面试

    资源隔离、限流、降级、熔断、实时监控 设计原则: 对依赖服务调用时出现的延迟和失败进行控制和容错 在复杂的分布式系...

网友评论

    本文标题:谈谈服务限流和熔断的设计与实现

    本文链接:https://www.haomeiwen.com/subject/djyymctx.html