Spring Cloud整合Sentinel

Posted java1234_小锋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud整合Sentinel相关的知识,希望对你有一定的参考价值。

完整目录清单页面(必看)

Spring Cloud Alibaba默认为Sentinel整合了Servlet、RestTemplate、 FeignClient和Spring WebFlux。它不仅补全了Hystrix在Servlet和RestTemplate这一块的空白,而且还完全兼容了Hystrix在FeignClient中限流降级的用法,并支持灵活配置和调整流控规则。

第一步:新建sentinel-springcloud子模块项目,pom.xml添加spring-cloud-starter-alibaba-sentinel依赖

<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

第二步:新建SentinelHelloWorldControllerc测试类

package com.java1234.controller;


import com.alibaba.csp.sentinel.annotation.SentinelResource;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author java1234_小锋
 * @site www.java1234.com
 * @company Java知识分享网
 * @create 2021-05-04 14:35
 */
@RestController
public class SentinelHelloWorldController {


    /**
     * 注解方式定义资源
     * @SentinelResource  value 资源名称
     * @SentinelResource blockHandler 调用被限流/降级/系统保护的时候调用的方法
     * @return
     */
    @SentinelResource(value = "helloWorld_springcloud",blockHandler = "blockHandlerForHelloWorld3")
    @RequestMapping("helloWorld3")
    public String helloWorld3(){
        return "Sentinel 大爷你好!by 注解方式@SentinelResource"+System.currentTimeMillis();
    }

    /**
     * 原方法调用被限流/降级/系统保护的时候调用
     * @param ex
     * @return
     */
    public String blockHandlerForHelloWorld3(BlockException ex) {
        ex.printStackTrace();
        return "系统繁忙,请稍后!";
    }


}

第三步:application.yml配置本地项目接入Dashboard控制台

spring:
  application:
    name: sentinel_springcloud  # 设置应用名称
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080  # 设置Sentinel连接控制台的主机地址和端口

第四步:Sentinel Dashboard增加流控规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i6nerl9G-1624267108063)(C:\\Users\\java1234\\AppData\\Roaming\\Typora\\typora-user-images\\image-20210621115320329.png)]

第五步:测试

浏览器地址栏输入:http://localhost/helloWorld3

正常显示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Atqn2c67-1624267108064)(C:\\Users\\java1234\\AppData\\Roaming\\Typora\\typora-user-images\\image-20210621115522849.png)]

如果频繁访问,则被流控

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-amluljcE-1624267108065)(C:\\Users\\java1234\\AppData\\Roaming\\Typora\\typora-user-images\\image-20210621115548434.png)]

微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

以上是关于Spring Cloud整合Sentinel的主要内容,如果未能解决你的问题,请参考以下文章

spring cloud gateway整合sentinel作网关限流

springcloud 微服务Spring Cloud Alibaba整合Sentinel详解

Spring Cloud Gateway 整合 sentinel 实现流控熔断

Spring Cloud Gateway 整合 sentinel 实现流控熔断

Spring Cloud Gateway 整合 sentinel 实现流控熔断

Spring Cloud Gateway 整合 sentinel 实现流控熔断