Sentinel 整合SpringCloud的详细教程

 更新时间:2021年10月31日 09:40:06   作者:Vermeer  
Spring Cloud Alibaba Sentinel 是阿里巴巴提供的,致力于提供微服务一站式解决方案,这篇文章主要介绍了Sentinel 之 整合SpringCloud的相关知识,需要的朋友可以参考下

Spring Cloud Alibaba Sentinel 是阿里巴巴提供的,致力于提供微服务一站式解决方案,Spring Cloud Alibaba 默认为 Sentinel 整合了,ServeLet、RestTemplate、FeignClient 和 Spring Flux。在 Spring 的生态中不仅不全了 Hystrix 在 ServeLet 和 RestTemplate 这一块的空白,而且还完美的兼容了 Hystrix 在 Feign 中的限流降级用法,并支持运行时灵活的配置和调整限流降级规则。

引入依赖:

<!--Sentinel 整合SpringCloud 的依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-sentinel</artifactId>
    <version>2.2.0.RELEASE</version>
</dependency>

配置文件:

(入门使用中,应用名称使用的 JVM 参数设置的,整合 SpringCloud 就不需要那样了,配置文件中配置了应用的名称后,Sentinel 会自动加载)

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

编写测试 Controller ,控制台添加 Sentinel_Cloud 资源 限流测试

@SentinelResource(value = "Sentinel_Cloud",blockHandler = "exceptionHandler")
@GetMapping("/sentinelCloud")
public String sentinelCloud(){
    //使用限流规则
    return "Sentinel_Cloud,成功调用";
}

限流时调用的方法:

/**
 * 定义降级 / 限流 的处理函数
 *
 * @param exception
 * @return
 */
public String exceptionHandler(BlockException exception) {
    exception.printStackTrace();
    return "Sentinel_Cloud,访问限流";
}

Sentinel整合Feign (OpenFeign)

Sentinel适配了Feign组件。如果想要使用,除了引用spring-cloud-starter-alibaba-sentinel的依赖,还需要两个步骤:

配置打开Sentinel对Feign的支持:feign.sentinel.enable=true

加入spring-cloud-starter-openfeign依赖使Sentinel starter自动化配置类生效。

# 设置应用的名称
spring:
  application:
    name: springCloudSentinel
  cloud:
    sentinel:
      transport:
 
        #设置Sentinel控制台的主机地址和端口号
        dashboard: localhost:9000
 
# 开启 Sentinel 对 Feign 的支持
feign:
  sentinel:
    enabled: true

服务端调用方Controller

@GetMapping("/feignHello")
public String feignHello(){
    return feignClient.feignHello();
}

服务提供方 FeignClient

@FeignClient(contextId = "testFeignClient", value = "注册中心中服务的名称", fallback = FeignFallbackService.class)
public interface TestFeignClient {
 
   /**
    * OpenFeign 远程调用的方法
    *
    * @return
    */
   @GetMapping("/test/feignHello")
   String feignHello();
}

提供一个 FeignClient 接口的实现类,作为限流的处理方法

@Service
public class FeignFallbackService  implements TestFeignClient{
   @Override
   public String feignHello() {
      return "Feign 远程调用限流了";
   }
}

Sentinel 控制台添加限流规则:

请求方式:http://服务模块注册中心名称/test/feignHello

到此这篇关于Sentinel 之 整合SpringCloud的文章就介绍到这了,更多相关Sentinel 整合SpringCloud内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现倒序读取文件功能示例分享

    java实现倒序读取文件功能示例分享

    这篇文章主要介绍了java实现倒序读取文件功能示例,需要的朋友可以参考下
    2014-04-04
  • 深入理解Maven环境搭建和介绍

    深入理解Maven环境搭建和介绍

    这篇文章主要介绍了深入理解Maven环境搭建和介绍,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • java面试常问的Runnable和Callable的区别

    java面试常问的Runnable和Callable的区别

    大家好,本篇文章主要讲的是java面试常问的Runnable和Callable的区别,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • mybatis学习笔记之mybatis注解配置详解

    mybatis学习笔记之mybatis注解配置详解

    本篇文章主要介绍了mybatis学习笔记之mybatis注解配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 详解Java串行化接口的用法和原理

    详解Java串行化接口的用法和原理

    在Java开发中,我们经常需要将对象进行序列化和反序列化,以便在网络传输或存储到持久化介质中,Java提供了一种机制,即通过实现Serializable接口来实现对象的串行化,本文将详细介绍Java串行化接口的用法和原理,以及一些相关的注意事项,需要的朋友可以参考下
    2023-11-11
  • Springboot 集成 lombok.jar过程解析

    Springboot 集成 lombok.jar过程解析

    这篇文章主要介绍了Springboot 集成 lombok.jar过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • IDEA Debug过程中使用Drop Frame或Reset Frame实现操作回退的方法

    IDEA Debug过程中使用Drop Frame或Reset Frame实现操作回退的方法

    在IDEA中就提供了一个帮助你回退代码的机会,但这个方法并不是万能的,好了,下面就来具体说说IDEA Debug过程中使用Drop Frame或Reset Frame实现操作回退的方法,感兴趣的朋友一起看看吧
    2022-04-04
  • java字符串反转的7种方法

    java字符串反转的7种方法

    本文主要介绍了java字符串反转的7种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • springboot集成schedule实现定时任务

    springboot集成schedule实现定时任务

    在项目开发过程中,我们经常需要执行具有周期性的任务。通过定时任务可以很好的帮助我们实现。本篇文章主要介绍了springboot集成schedule实现定时任务,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • SpringCloud对服务内某个client进行单独配置的操作步骤

    SpringCloud对服务内某个client进行单独配置的操作步骤

    我们的微服务项目用的是springCloud,某个微服务接口因为数据处理量大,出现了接口超时的情况,我们需要单独修改这一个feignClient的超时时间,所以本文介绍了SpringCloud对服务内某个client进行单独配置的操作步骤,需要的朋友可以参考下
    2023-10-10

最新评论