基于 Spring Cloud Gateway 实现微服务架构的限流、熔断和重试 看点
2023-04-13 11:37:53 来源:腾讯云
pring Cloud Gateway是一个基于Spring Boot的网关服务,可以实现微服务架构中的限流、熔断和重试等功能。
限流:
在Spring Cloud Gateway中,可以使用RateLimiter来限制每个请求的速率。RateLimiter是基于令牌桶算法实现的,它会根据配置的速率,为每个请求分配一个令牌,如果请求的速率超过了配置的速率,则会被限流。
首先,需要在pom.xml文件中添加依赖:
(资料图)
io.github.resilience4j resilience4j-ratelimiter 1.7.1
然后,在Spring Cloud Gateway中配置一个RateLimiter:
@Configurationpublic class GatewayConfiguration { @Bean public KeyResolver userKeyResolver() { return exchange -> Mono.just(exchange.getRequest().getQueryParams().getFirst("user")); } @Bean public RateLimiter rateLimiter() { RateLimiterConfig config = RateLimiterConfig.custom() .limitRefreshPeriod(Duration.ofSeconds(1)) .limitForPeriod(1) .timeoutDuration(Duration.ofMillis(500)) .build(); return RateLimiter.of("gatewayRateLimiter", config); } @Bean public GatewayFilterFactory ratelimiterGatewayFilterFactory() { return new RatelimiterGatewayFilterFactory(); }}
这个配置将会限制每个用户每秒钟只能访问一个请求。在使用这个限流器时,只需要在路由配置中添加一个RatelimiterGatewayFilterFactory:
spring: cloud: gateway: routes: - id: some-service uri: lb://some-service filters: - name: RequestRateLimiter args: key-resolver: "#{@userKeyResolver}" rate-limiter: "#{@rateLimiter}"
熔断:
Spring Cloud Gateway还支持熔断器,可以在服务不可用时,快速地返回错误信息。在Spring Cloud Gateway中,可以使用resilience4j来实现熔断器。
首先,在pom.xml文件中添加依赖:
io.github.resilience4j resilience4j-circuitbreaker 1.7.1
然后,在Spring Cloud Gateway中配置一个CircuitBreaker:
@Configurationpublic class GatewayConfiguration { @Bean public CircuitBreaker circuitBreaker() { CircuitBreakerConfig config = CircuitBreakerConfig.custom() .failureRateThreshold(50) .waitDurationInOpenState(Duration.ofMillis(1000)) .slidingWindowSize(5) .build(); return CircuitBreaker.of("gatewayCircuitBreaker", config); } @Bean public GatewayFilterFactory circuitBreakerGatewayFilterFactory() { return new CircuitBreakerGatewayFilterFactory(); }}
这个配置将会在请求失败率达到50%时打开熔断器,并在熔断器打开后等待1秒钟后再尝试请求。在使用这个熔断器时,只需要在路由配置中添加一个CircuitBreakerGatewayFilterFactory:
spring: cloud: gateway: routes: - id: some-service uri: lb://some-service filters: - name: CircuitBreaker args: name: "#{@circuitBreaker}"
重试:
在微服务架构中,服务之间的调用可能会出现网络故障或其他问题导致请求失败。为了解决这个问题,可以使用Spring Cloud Gateway中的重试机制。
首先,在pom.xml文件中添加依赖:
org.springframework.cloud spring-cloud-starter-gateway 3.0.3
然后,在路由配置中添加重试机制:
spring: cloud: gateway: routes: - id: some-service uri: lb://some-service predicates: - Path=/some/path/** filters: - name: Retry args: retries: 3 statuses: BAD_GATEWAY backoff: firstBackoff: 100ms maxBackoff: 5s factor: 2
这个配置将会在请求返回BAD_GATEWAY时进行3次重试,重试时间间隔为100毫秒到5秒之间的指数增长。在实际使用时,可以根据具体情况调整重试次数、重试间隔等参数。
关键词:
为你推荐
基于 Spring Cloud Gateway 实现微服务架构的限流、熔断和重试 看点
世界快消息!专家称“年轻人不生小孩不对”上热搜,媒体这么说
年内113家公司公告定增方案已完成 49家定增金额超10亿元
范友良:一方泥砚传匠心
每日消息!提升城中村居住品质的新探索
欧佩克秘书长会见俄罗斯代表 双方表示将加强能源合作
快播:健康中国板块4月12日跌0.68%,通策医疗领跌,主力资金净流出4.15亿元
90所大学撤销这个专业!
首都机场线打造智慧车站 未来有望实现无感快速安检|世界头条
全球实时:动漫游戏基金成为年内黑马,投资者宜穿透审视游戏指数优劣
大型元旦晚会主持词-大型元旦晚会主持稿
法雷奥在Laval Virtual虚拟现实国际会展上展示其沉浸式技术
视焦点讯!机构今日买入这25股,抛售精测电子2.11亿元丨龙虎榜
特别关注丨高考已近,各学科该如何同时补弱增强?
ChatGPT狂飙,浙江高中生向人工智能专家张文宇犀利提问
存款贷款双下降意味着什么?主要影响有这些-世界要闻
北京天坛医院预约挂号怎么取号?流程一览
“上千人齐聚,醉美滨河”——第39届昌平区长跑大会暨2022“创森杯”半程马拉松圆满成功!
和讯个股快报:2023年04月12日 汉仪股份(301270)该股换手率大于8%
铜仁碧江区:密槽水库明年4月下闸蓄水……
推荐内容
- 基于 Spring Cloud Gateway 实现微服务架构的
- 世界快消息!专家称“年轻人不生小孩不对”上热搜
- 年内113家公司公告定增方案已完成 49家定增金额
- 范友良:一方泥砚传匠心
- 每日消息!提升城中村居住品质的新探索
- 欧佩克秘书长会见俄罗斯代表 双方表示将加强能源
- 快播:健康中国板块4月12日跌0.68%,通策医疗领跌
- 90所大学撤销这个专业!
- 首都机场线打造智慧车站 未来有望实现无感快速安
- 全球实时:动漫游戏基金成为年内黑马,投资者宜穿
- 大型元旦晚会主持词-大型元旦晚会主持稿
- 法雷奥在Laval Virtual虚拟现实国际会展上展示其
- 视焦点讯!机构今日买入这25股,抛售精测电子2.11
- 特别关注丨高考已近,各学科该如何同时补弱增强?
- ChatGPT狂飙,浙江高中生向人工智能专家张文宇犀
- 存款贷款双下降意味着什么?主要影响有这些-世界
- 北京天坛医院预约挂号怎么取号?流程一览
- “上千人齐聚,醉美滨河”——第39届昌平区长跑大
- 和讯个股快报:2023年04月12日 汉仪股份(301270
- 铜仁碧江区:密槽水库明年4月下闸蓄水……
- (聚焦消博会) 外企看中国:中国消费市场持续释放
- 当前要闻:MaaS渐成共识 科技公司竞逐AI大模型
- qq搞笑自动回复句子100字_qq搞笑自动回复_全球简讯
- 当前播报:云南丽江、玉溪发生森林火灾,消防正投
- 世界讯息:低压电缆_关于低压电缆的介绍
- 环球快看:巫山“云水之声”朗诵艺术沙龙成立
- 龙拳3无敌版手机下载安装_龙拳3无敌版 环球新消息
- 雅创电子:2022年净利同比增长66.85% 拟10派5元|
- 2023中山市民众街道两癌筛查时间+地点+对象
- 环球新资讯:财报速递:杰克股份2022年全年净利润
- 张希已任国宝人寿党委书记,曾市场化选聘获任四川
- 环球快播:“唯我独尊”让美国越来越走向封闭
- 世界快报:永杉锂业年产4.5万吨锂盐项目二期开工,
- 【环球热闻】广汇物流:一季度归母净利同比增151.
- 两项新国标发布实施 个人快递信息将进行加密处理
- 俄乌战场,突然传来一个好消息_关注
- 第十七届榆林国际煤博会成果丰硕
- 国家邮政局:《快递电子运单》国家标准强化个人信
- 当前滚动:因为琐事发生争吵一气之下开车撞人
- 简讯:干燥剂的使用方法是什么?使用干燥剂的注意
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
中新网通辽10月18日电 (记者 张林虎)18日,记者从内蒙古自治区通辽市奈曼旗公安局获悉,国家一级保护动物--梅花鹿误入当地村民羊群,
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中新网福州10月18日电 (记者 龙敏 王东明)福州市晋安区官方18日晚间通报,18日14时47分,晋安区岳峰镇化工路爱摩轮商业广场项目摩天
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西
-
中新网北京10月18日电 《清华城市健康设施指数》18日在北京发布。报告成果显示,城市健康设施指数领先城市以中心城市和东部沿海城市