sentinel网关流控

springboot整合sentinel:

springboot整合sentinel_呆萌很的博客-CSDN博客

网关服务引入依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

sentinel控制台查看,功能有区别其他服务

新增网关流控规则

 超出请求限制显示:

带有指定请求头的流控

带有hello参数头超出流控显示

 

 API组流控

新增API组

 新增流控规则,选择API组,对整个API分组都将起到作用

修改限流返回数据

package com.hdb.pingmoweb.gateway.config;

import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.BlockRequestHandler;
import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.GatewayCallbackManager;
import com.alibaba.fastjson.JSON;
import com.hdb.pingmoweb.common.utils.R;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.server.ServerResponse;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

@Configuration
public class SentinelGatewayConfig {

    public SentinelGatewayConfig() {
        GatewayCallbackManager.setBlockHandler(new BlockRequestHandler() {
            @Override
            public Mono<ServerResponse> handleRequest(ServerWebExchange serverWebExchange, Throwable throwable) {
                R error = R.error(400, "太多请求");
                String errJson = JSON.toJSONString(error);
                Mono<ServerResponse> body = ServerResponse.ok().body(Mono.just(errJson), String.class);
                return body;
            }
        });
    }
}

猜你喜欢

转载自blog.csdn.net/qq_29385297/article/details/127639541