架构高可用-服务保护

女爷i 2023-06-17 15:55 63阅读 0赞

服务降级
限流是服务降级的一种,限制系统输出和输入流量从而保护系统。
系统吞吐量是一定的,可以通过压力测试得到。有可能会超过系统阈值,为了保证系统的稳定,需要采取一些措施,比如,延迟处理,拒绝处理,部分拒绝处理等

计数器
优势:控制单位时间内的请求数量,简单粗暴
劣势:无法应对极短时间里的突发流量

滑动窗口
增加一个时间粒度的度量单位

漏桶
规定固定容量的桶,有水进入,有水流出. 对于流进的水我们无法估计进来的数量、速度,对于流出的水我们可以控制速度.

令牌桶
规定固定容量的桶,token 以固定速度往桶内填充,当桶满时 token 不会被继续放入,每过来一个请求把 token 从桶中移除,如果桶中没有 token 不能请求

中间件实现

Hystrix
于2018 年 11 月,不再开放新功能

Hystrix 的设计原则
对依赖服务调用时出现的调用延迟和调用失败进行控制和容错保护。
在复杂的分布式系统中,阻止某一个依赖服务的故障在整个系统中蔓延。比如某一个服务故障了,导致其它服务也跟着故障。
提供 fail-fast(快速失败)和快速恢复的支持。
提供 fallback 优雅降级的支持。
支持近实时的监控、报警以及运维操作。

Hystrix 更加细节的设计原则
阻止任何一个依赖服务耗尽所有的资源,比如 tomcat 中的所有线程资源。
避免请求排队和积压,采用限流和 fail fast 来控制故障。
提供 fallback 降级机制来应对故障。
使用资源隔离技术,比如 bulkhead(舱壁隔离技术)、swimlane(泳道技术)、circuit breaker(断路技术)来限制任何一个依赖服务的故障的影响。
通过近实时的统计/监控/报警功能,来提高故障发现的速度。
通过近实时的属性和配置热修改功能,来提高故障处理和恢复的速度。
保护依赖服务调用的所有故障情况,而不仅仅只是网络故障情况。

spring cloud gateway 默认使用redis进行限流,笔者一般只是修改修改参数属于拿来即用.并没有去从头实现上述那些算法.

sentinel
通过配置来控制每个url的流量
配置内容在nacos上进行编辑

发表评论

表情:
评论列表 (有 0 条评论,63人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mysql可用架构

    高可用 高可用(High Availabiltity) * 应用提供持续不间断(可用)的服务的能力 * 系统高可用性的评价通常用可用率表示 ![20190...

    相关 架构可用-服务保护

    服务降级 限流是服务降级的一种,限制系统输出和输入流量从而保护系统。 系统吞吐量是一定的,可以通过压力测试得到。有可能会超过系统阈值,为了保证系统的稳定,需要采取一些措

    相关 网站可用架构

    可用性就是系统在发生故障的时候,可以继续提供服务的能力。高可用性,就是故障发生时,系统可以在很短的时间内就能恢复正常服务,甚至外部根本没有察觉。 提高可用性,核心手段在于冗余

    相关 可用架构方案

    1、高可用架构具备特征 1、主从切换或双机双工 1)主从切换,是当其中一台机器的服务宕机后,对于调用者来说,能够迅速的切换到其他可用服务,从服务升级为主服务,这种切

    相关 可用服务

    1、服务分类 1. 首先从应用定义维度进行划分:如微信端、钉钉端、PC端等; 2. 其次从功能定义维度进行划分,如接口类、业务类等。即服务分级概念 2、服

    相关 可用服务

    1、服务分类 1. 首先从应用定义维度进行划分:如微信端、钉钉端、PC端等; 2. 其次从功能定义维度进行划分,如接口类、业务类等。即服务分级概念 2、服

    相关 Mysql可用架构

    一,什么是高可用 高可用性H.A. ( High Availability )指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系