SpringCloud之Gateway网关熔断、限流

本文介绍Spring Cloud Gateway的高级功能,包括服务重试、熔断、限流等配置方法,并详细解释了如何利用Redis和自定义过滤器实现限流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、重试

在这里插入图片描述

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          lowerCaseServiceId: true
      routes:
        - id: gate_hi
          uri: lb://gateway-hi
          predicates:
            - Path=/retry/*
          filters:
            - StripPrefix=1
            - name: Retry
              args:
                retries: 3
                series: SERVER_ERROR
                methods: GET,POST

retries:重试次数
series: SERVER_ERROR,下游服务报5XX系列的错误触发重试机制
methods:重试的HTTP方法

hi服务hello接口

    @GetMapping("hello")
    public String hello(@RequestParam String name) {
   
        int i = 1 / 0;
        return "hi," + name + " ! " + "访问端口号:" + port;
    }

启动eureka、hi、limit服务
在这里插入图片描述

2、熔断Hystrix

添加 hystrix 依赖

        <!-- hystrix -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>

熔断配置

server:
  port: 8026

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8088/eureka/

spring:
  application:
    name: gateway-limit
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          lowerCaseServiceId: true
      routes:
        - id: gateway_hi
          uri: lb://gateway-hi
          predicates:
            - Path=/hi/*
          filters:
            - StripPrefix=1
            #熔断
            - name: Hystrix
              args:
                name: localfallback
                fallbackUri: forward:/fallback

回调方法在网关服务

@RestController
public class IndexController {
   

    @RequestMapping("/fallback")
    public String fallback
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值