24、调用弹性模式:构建健壮分布式系统的关键

调用弹性模式:构建健壮分布式系统的关键

1. 背压机制概述

背压是指服务系统向请求系统发出失败信号,以及请求系统如何处理这些失败以防止自身和服务系统过载。在过载和系统故障时,设计背压意味着限制资源使用,这是创建健壮分布式系统的基本要素之一。背压的实现通常包括在资源受限或发生故障时丢弃新消息,或将错误返回给用户(两种情况都会增加指标)。连接和对其他系统的请求的超时和指数退避也至关重要。若没有背压机制,级联故障或意外消息丢失很可能发生。

2. 提升弹性的四种模式

调用者可以结合以下四种模式来提高弹性:
- 重试
- 速率限制器
- 隔离舱
- 断路器

2.1 重试

下游服务可能会出现瞬态故障,如线程池暂时满负荷、网络连接缓慢导致超时或其他导致不可用的临时情况。这类故障通常会在短时间内自行修复。调用者应通过在重试逻辑中包装对下游的调用,来处理瞬态故障。添加重试时,需要考虑以下三个因素:
- 重试是否合适 :这通常需要对被调用服务有特定领域的知识。例如,对于返回超时的下游服务的支付尝试,是否应该重试?超时操作最终是否会被处理,重试是否会导致潜在的双重收费?
- 最大重试次数和重试间隔 :包括退避策略,如示例 7 - 7 所示。
- 哪些响应(和异常类型)值得重试 :例如,如果下游因输入格式错误返回 400,重试相同的输入不会得到不同的结果。

2.1.1 使用 Resilience4J 设置指数退避重试

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值