美文网首页
设计可靠服务之合理的限流策略

设计可靠服务之合理的限流策略

作者: robot_test_boy | 来源:发表于2022-09-01 00:07 被阅读0次

在大规模的微服务应用有时候会出现一些危险的服务使用方式。比如,上游服务在应该调用批量接口发起请求的地方发起多次简单请求;或者调用方对底层资源的调用并不均匀,存在对部分热点资源的大量访问。类似地,还有依赖于第三方外部接口的服务会受限于那些外部服务的强行指定的限制。

一个合适的解决方案是明确地限制一个时间窗口内对协作服务的请求频率或者总有效请求量

这种限制可以是无差别的,超过某个数量以后所有的请求全部被丢弃。也可以设计得很复杂,比如丢弃那些使用频率低的服务客户端的请求、优先处理关键接口的请求、丢弃低优先级的请求。

在设计阶段对服务的所有客户端共用同一套限流策略,但是如果可以在运行时进行控制,就更好了。服务可以向调用方返回一个自定义报头,以告诉消费方剩余的可用请求量。按照这一要求,上游协作方应该将剩余可用请求量这一信息考虑在内,并据此调整发出的请求频率。这种技术也被称作背压(back pressure)。

摘取自 摩根·布鲁斯和保罗·A.佩雷拉的《微服务实战》

相关文章

  • 设计可靠服务之合理的限流策略

    在大规模的微服务应用有时候会出现一些危险的服务使用方式。比如,上游服务在应该调用批量接口发起请求的地方发起多次简单...

  • 基于Redis的限流系统的设计

    本文讲述基于 Redis的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计;在实现方面,算法使用的是令牌...

  • 基于Redis的限流系统的设计

    本文讲述基于Redis的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计;在实现方面,算法使用的是令牌桶...

  • 基于Redis的限流系统的设计【转】

    基于Redis的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计;在实现方面,算法使用的是令牌桶算法来,...

  • 如何设计秒杀服务的限流策略

    如何保证在流量突增的情况下,仍然保证系统的稳定性。 通过限流策略抵御秒杀期间的流量峰值。 当海量请求到来时,可以对...

  • 如何设计秒杀服务的限流策略

    秒杀系统容易出现高并发。以时间为x轴,访问量为y轴。从秒杀开始到秒杀结束的访问量与时间的关系大概是这样的曲线: 秒...

  • (9)弹力设计篇之“限流设计”

    1、限流的策略 2、限流的算法:计数器、队列、漏斗和令牌桶。 3、如何基于响应时间来限流。 4、限流设计的要点 限...

  • 基于计数器的服务接口限流实例

    计数器限流是服务接口限流策略中最为基本和简单的方式。本实例将实现不同接口设置不同的限流方案。 首先我们需要需要定义...

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

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

  • 架构设计之「服务限流」

    来源:不止思考 上一篇我们聊过了架构设计中的「服务隔离」模式,今天我们继续来探索一下在分布式系统架构中的另一个常用...

网友评论

      本文标题:设计可靠服务之合理的限流策略

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