Spring Cloud Alibaba整合Sentinel的实现步骤

 更新时间:2020年10月26日 14:53:50   作者:huan_1993  
这篇文章主要介绍了Spring Cloud Alibaba整合Sentinel的实现步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、需求

实现一个简单的 整合 sentinel,不涉及sentinel的用法

二、实现步骤

1、下载 sentinel dashboard

https://github.com/alibaba/Sentinel/releases
注意:

默认会启动8080端口,如果端口冲突,可以在启动命令上加入 -Dserver.port=新端口

默认用户名和密码[sentinel/sentinel]
启动控制台可用的配置项

2、服务提供者和消费者引入sentinel依赖

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

注意: 在这个里面查找 sentinel-core的版本号,可以确定我们需要下载那个版本的 sentinel dashboard

3、配置控制台信息

spring:
 sentinel:
  transport:
  # 控制台的地址
  dashboard: localhost:8080
  # 与控制台通讯的端口,默认是8719,不可用会一直+1,知道找到一个可用的
  port: 8719
  # 和控制台保持心跳的ip地址
  client-ip: 127.0.0.1
  # 发送心跳的周期,默认是10s
  heartbeat-interval-ms: 10000

4、一个简答的整合就整合完了,访问资源,查看控制台。

三、整合Feigen

1、配置文件中加入 feign.sentinel.enabled=true 即可。
2、加入依赖

<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

3、对 Feign接口的降级或限流等操作时,资源名称的格式为:httpmethod:protocol://requesturl

四、整合 RestTemplate

1、在RestTemplate上加入 @SentinelRestTemplate注解。
2、配置文件中加入 resttemplate.sentinel.enabled: true,默认就是 true
3、降级或限流时的处理

抄sentinel的官网描述,文本给出链接

@SentinelRestTemplate 注解的属性支持限流(blockHandler, blockHandlerClass)和降级(fallback, fallbackClass)的处理。

其中 blockHandler 或 fallback 属性对应的方法必须是对应 blockHandlerClass 或 fallbackClass 属性中的静态方法。

该方法的参数跟返回值跟 org.springframework.http.client.ClientHttpRequestInterceptor#interceptor 方法一致,其中参数多出了一个 BlockException 参数用于获取 Sentinel 捕获的异常。

比如上述 @SentinelRestTemplate 注解中 ExceptionUtil 的 handleException 属性对应的方法声明如下:

public class ExceptionUtil {
 public static ClientHttpResponse handleException(HttpRequest request, byte[] body, ClientHttpRequestExecution execution, BlockException exception) {
  ...
 }
}

五、@SentinelResource的用法

1、@SentinelResource 注解用来标识资源是否被限流、降级。
2、一般推荐将 @SentinelResource 注解加到服务实现上
3、可以指定 blockHandlerfallback ,在发生异常时的处理。

六、代码路径

https://gitee.com/huan1993/spring-cloud-alibaba-parent/tree/master/sentinel

七、参考文档

Sentinel Wike
Sentinel 注解支持

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

相关文章

  • java servlet结合Oracle搭建java的web开发环境

    java servlet结合Oracle搭建java的web开发环境

    今天我将与大家分享一下我学JAVA WEB写的一些小实例 ,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深
    2015-12-12
  • Java中的OneToMany的使用方法

    Java中的OneToMany的使用方法

    这篇文章主要介绍了Java中的OneToMany的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • java如何完成输出语句实例详解

    java如何完成输出语句实例详解

    输入输出可以说是计算机的基本功能,下面这篇文章主要给大家介绍了关于java如何完成输出语句的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • SpringBoot中的@Conditional 注解的使用

    SpringBoot中的@Conditional 注解的使用

    @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean,本文主要介绍了SpringBoot中的@Conditional 注解的使用
    2024-01-01
  • SpringBoot中GlobalExceptionHandler异常处理机制详细说明

    SpringBoot中GlobalExceptionHandler异常处理机制详细说明

    Spring Boot的GlobalExceptionHandler是一个全局异常处理器,用于捕获和处理应用程序中发生的所有异常,这篇文章主要给大家介绍了关于Java中GlobalExceptionHandler异常处理机制的相关资料,需要的朋友可以参考下
    2024-03-03
  • 详解json在SpringBoot中的格式转换

    详解json在SpringBoot中的格式转换

    这篇文章主要介绍了详解json在SpringBoot中的格式转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • java中常见的6种线程池示例详解

    java中常见的6种线程池示例详解

    这篇文章主要介绍了java中常见的6种线程池示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java数据结构之环形链表和约瑟夫问题详解

    Java数据结构之环形链表和约瑟夫问题详解

    约瑟夫(Josephus)问题是单向环形链表的一种体现,也就是丢手帕问题,下面这篇文章主要给大家介绍了关于Java数据结构之环形链表和约瑟夫问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 深入解读Java代码组织中的package包结构

    深入解读Java代码组织中的package包结构

    这篇文章主要介绍了Java代码组织中的package包结构,是Java入门学习中的基础知识,需要的朋友可以参考下
    2016-03-03
  • 解决springcloud 配置gateway 出现错误的问题

    解决springcloud 配置gateway 出现错误的问题

    今天给大家分享springcloud 配置gateway 出现错误的问题,其实解决方法很简单,只需要降低springcloud版本,改成Hoxton.SR5就好了,再次改成Hoxton.SR12,也不报错了,下面给大家展示下,感兴趣的朋友一起看看吧
    2021-11-11

最新评论