Sentinel-结合RestTemplate(四)
依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commons</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel</artifactId></dependency>
配置注入:
@Bean@LoadBalanced// 让 RestTemplate 支持 Sentinel 限流@SentinelRestTemplate( blockHandler = "blockHandlerFunc", fallback = "fallbackFunc", blockHandlerClass = MyBlockHandlerClass.class)public RestTemplate restTemplate(){ return new RestTemplate();}
异常处理类:
@Slf4jpublic class MyBlockHandlerClass { public static String blockHandlerFunc(String a, BlockException e){ log.warn("限流了",e); return ""; } public static String fallbackFunc(String a){ log.warn("降级了"); return ""; }}
调用:
@AutowiredRestTemplate restTemplate;this.restTemplate.getForObject("http://user-center/users/{id}", Users.class,article.getId());
配置开关:
resttemplate: # 关闭 @SentinelRestTemplate 作用,开发环境可以临时关闭: 降级,限流 sentinel: enabled: false
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。