SpringCloud升级之路2020。0。x版30。FeignClient实现重试
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 需要重试的场景
微服务系统中,会遇到 在线发布 ,一般的发布更新策略是:启动一个新的,启动成功之后,关闭一个旧的,直到所有的旧的都被关闭。Spring Boot 具有优雅关闭的功能,可以保证请求处理完再关闭,同时会拒绝新的请求。对于这些拒绝的请求,为了保证用户体验不受影响,是需要重试的。
云上部署的微服务,对于同一个服务,同一个请求,很可能不会所有实例都同时异常,例如: Kubernetes 集群部署的实例,可能同一个虚拟机 Node 在闲时部署了多个不同微服务实例,当压力变大时,就需要迁移和扩容。这时候由于不同的微服务压力不同,当时处于哪一个 Node 也说不定,有的可能处于压力大的,有的可能处于压力小的。对于同一个微服务,可能并不会所有实例位于的 Node 压力都大。 云上部署一般会跨可用区部署,如果有一个可用区异常,另一个可用区还可以继续提供服务。 某个业务触发了 Bug,导致实例一直在 GC,但是这种请求一般很不常见,不会发到所有实例上。
这时候,就需要我们对请求进行无感知的重试。 重试需要考虑的问题重试需要重试与 之前不同的实例 ,甚至是不处于同一个虚拟机 Node 的实例,这个主要通过 LoadBalancer 实现,可以参考之前的 LoadBalancer 部分。后面的文章,我们还会改进 LoadBalancer 重试需要考虑到底什么请求能重试,以及什么异常能重试: 假设我们有查询接口,和没有做幂等性的扣款接口,那么很直观的就能感觉出 查询接口是可以重试的,没有做幂等性的扣款接口是不能重试的 。 业务上不能重试的接口,对于特殊的异常(其实是表示请求并没有发出去的异常),我们是可以重试的。虽然是没有做幂等性的扣款接口,但是如果抛出的是原因是 Connect Timeout 的 IOException, 这样的异常代表请求还没有发出去,是可以重试的 。 重试策略 :重试几次,重试间隔。类比多处理器编程模式中的 Busy Spin 策略会造成很大的总线通量从而降低性能这个现象,如果失败立刻重试,那么在某一个实例异常导致超时的时候,会在同一时间有很多请求重试到其他实例。最好加上一定延迟。 使用 resilience4j 实现 FeignClient 重试
FeignClient 本身带重试,但是重试策略相对比较简单,同时我们还想使用断路器以及限流器还有线程隔离,resilience4j 就包含这些组件。 原理简介
Resilience4J 提供了 Retryer 重试器,官方文档地址:https://resilience4j.readme.io/docs/retry
从配置上就能理解其中的原理,但是 官方文档配置并不全面 ,如果想看所有的配置,最好还是通过源码:
RetryConfigurationProperties.java //重试间隔,默认 500ms @Nullable private Duration waitDuration; //重试间隔时间函数,和 waitDuration 只能设置一个,默认就是 waitDuration @Nullable private Class<? extends IntervalBiFunction
盒马再成小众生鲜伯乐,水果莲子已扩产10倍每天上午8点,和姐妹们结伴步行到不远处的工坊剥水果莲子,是戴红香老人近一个月来的日常。我今年70岁了。戴红香对现在的生活很是满意,每天在家待着实在很无聊,在这里嘛有事做,剥莲子又很
PHA马上要开始挖矿了!关于PHA项目你需要了解这些今天,我们不谈以太坊也不谈比特币,小编要为大家介绍的是最近关注度颇高的PHA项目。为何今天会提到PHA项目呢?那是因为近期有个消息传出PHA马上要开始挖矿了!作为目前波卡生态里实力
2020年7月EATX平台配置推荐(英特尔)EATX平台,指主机中包含EATX主板的平台,一般价格较高,扩展性强。EATX平台的分类HEDT(HighEndDesktop,高端桌面)平台,Server(服务器)平台和Work
周末复盘段永平买苹果股票9年9倍的逻辑截止周五美股收盘,苹果股价以微涨0。23收于310。33美元,市值1。36万亿美元,再次突破历史新高,市值稳坐全宇宙第一。本部落是段永平的老粉丝了,从以前的网易博客时代一直追到现在
矿视界译文以太坊离权益证明还有多远?随着NFT和DeFi的持续升温,以太坊2。0开发者迫切希望权益证明网络可以尽快上线。自主网上线以来,以太坊就开始使用与比特币相同的工作量证明机制,不过这几年间,以太坊开发者却一直在
太攀之后有它亦是幸,雷蛇锐蝮蛇开箱图赏在太攀皇蛇下市之后,在300400元价位上雷蛇打出了锐蝮蛇,设计感更强的它和巴塞利斯成为MOBA游戏时代的纯右手和对称式的两把利器。而在巴塞利斯往下覆盖199价位的时候,锐蝮蛇则往
告诉你最新的棱镜轴长什么样子(拆解)什么是棱镜轴?Flaretech棱镜轴,严格来说是光轴的一种,但和传统光轴的直线光路导通不同,它利用了三棱镜折射的原理,这么折一次后再实现导通。这其实并非刻意的炫技和标新立异,而是
高阶自动驾驶的量产车型摩卡预售17。984月19日,WEY品牌全球代言人WEY摩卡首席智能体验官姚安娜,空降上海车展智动WEY来摩卡专属日,携手全球首款智能汽车人WEY摩卡,为现场粉丝呈现了车展史上自动驾驶走秀,书写了其
WEY玛奇朵诠释传承与创新日前,新一代混动SUVWEY玛奇朵正式发布官图,预示着WEY品牌智能混动时代即将到来。玛奇朵基于WEY品牌家族先锋张力美学概念,塑造未来科技感,同时又以敏锐青春的产品设计理念标签,
高阶自动驾驶的量产车型摩卡预售17。984月19日,WEY品牌全球代言人WEY摩卡首席智能体验官姚安娜,空降上海车展智动WEY来摩卡专属日,携手全球首款智能汽车人WEY摩卡,为现场粉丝呈现了车展史上自动驾驶走秀,书写了其
秉持传统的电竞鼠标,ZOWIE卓威EC1B拆解除了引擎性能的提升,近几年游戏鼠标的进步更多的在体验细节上,尤其是中高端鼠标。在电竞市场的刺激下,一线厂商还需在RGB灯光系统超轻量化设计和极致按键手感等方面有更高的追求。所以,不