最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Spring Cloud Alibaba整合Sentinel实现代码示例
时间:2020-10-26 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Spring Cloud Alibaba整合Sentinel实现代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
一、需求
实现一个简单的 整合sentinel,不涉及sentinel的用法
二、实现步骤
1、下载 sentinel dashboard
https://github.com/alibaba/Sentinel/releases
注意:
默认会启动8080端口,如果端口冲突,可以在启动命令上加入-Dserver.port=新端口
默认用户名和密码[sentinel/sentinel]
启动控制台可用的配置项
2、服务提供者和消费者引入sentinel依赖
com.alibaba.cloud spring-cloud-starter-alibaba-sentinel
注意:在这个里面查找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、加入依赖
org.springframework.cloud spring-cloud-starter-openfeign
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、可以指定blockHandler或fallback,在发生异常时的处理。
六、代码路径
https://gitee.com/huan1993/spring-cloud-alibaba-parent/tree/master/sentinel
相关文章
- SpringBoot自定义bean绑定解析 10-24
- Javaweb工程运行报错HTTP Status 404解决教程 10-20
- JAVA获取jvm和操作系统相关信息方法 10-20
- BeanFactory和FactoryBean的区别讲解 10-20
- 微信小程序的宿主环境实现教程 10-10
- dispatchEvent解决重叠元素响应事件教程 10-10