Sentinel(2)
2021/7/18 8:05:46
本文主要是介绍Sentinel(2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
控制台相关配置:
在代码中配置Sentinel
定义一个资源名为test-sentinel-api的sentinel资源,当资源被降级或者被限流,会返回对应的字段。
所定义的方法,返回值和入参需要一致
@GetMapping("/test-sentinel-Resource") @SentinelResource(value = "test-sentinel-api" ,blockHandler = "block" ,fallback = "fallback" ,blockHandlerClass = TestControllerBlockHandlerClass.class) public String testSentinelResource(@RequestParam(required = false) String a){ Entry entry = null; //被保护的逻辑 if (StringUtils.isBlank(a)){ throw new IllegalArgumentException("a cannot be null"); } return a; } /** * 1.5:处理降级 * sentinel1.6后,可以处理Throwable,任何异常都可以走到这里 * @param a * @return */ public String fallback( String a){ log.warn("降级了fallback"); return "降级了fallback"; } }
package com.itmuch.usercenter.sentineltest; import com.alibaba.csp.sentinel.slots.block.BlockException; import lombok.extern.slf4j.Slf4j; @Slf4j public class TestControllerBlockHandlerClass { /** * 处理限流或者降级 * @param a * @param e * @return */ public static String block(String a , BlockException e) { log.warn("限流,或则被降级了block",e); return "限流,或则被降级了block"; } }
restTemplate整合sentinel
现在配置文件中开启整合sentinel
resttemplate: sentinel: enabled: true #开启/关闭@SentinelRestTemplate注解
在启动文件中的restTemplate的bean中添加注解@SentinelRestTemplate
public class ContentCenterApplication { public static void main(String[] args) { SpringApplication.run(ContentCenterApplication.class, args); } //在spring容器中,创建一个对象,其类型为RestTemplate,名称&ID为restTemplate //<bean id="restTemplate" class="xxx.RestTemplate"/> @Bean @LoadBalanced//为restTemplate整合Ribbon @SentinelRestTemplate //为restTemplate整合sentinel public RestTemplate restTemplate(){ return new RestTemplate(); } }
进入@SentinelRestTemplate注解中可以配置错误信息
与
@SentinelResource
使用方式类似
feign整合sentinel
先在配置文件中开启整合sentinel(没有提示)
feign: sentinel: enabled: true #feign整合sentinel
在feign调用的接口中,配置sentinel类
fallback:发生限流或降级会触发逻辑,但不会返回错误信息;
fallbackfactory:发生限流或降级会触发逻辑,并返回错误信息;
这里流控规则设置限流
触发后
这篇关于Sentinel(2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南