需求
某个微服务挂了不可能全部一起卡在那,总得有个补偿备用方案,以提升整个服务的可用性。
目录
引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
启动配置
feign:
sentinel:
enabled: true
Feign接口注解配置fallback参数
@FeignClient(name = "common-message",fallback = MessageFeignClientFallback.class)
public interface MessageFeignClient {
@ResponseBody
@RequestMapping(value = "/sms/{phone}/{code}",method = RequestMethod.GET)
public String sendSms(@PathVariable(name = "phone") String phone, @PathVariable(name = "code") String code);
}
实现降级处理类(补偿操作或提示)
@Component
public class MessageFeignClientFallback implements MessageFeignClient {
@Override
public String sendSms(String phone, String code) {
return "Message 服务已关闭,请联系管理员启动";
}
}
以上完成后,相当于如果调用的微服务接口出现异常,就抓取异常并进行类似catch的处理,而且以上步骤是无侵入式的。如果需要进行限流或者熔断的操作的话则需要启动sentinel控制台进行配置。
牛掰格拉斯
wuli韬韬!
段老师 YYDS