Site Overlay

Alibaba Sentinel实现服务降级

需求

某个微服务挂了不可能全部一起卡在那,总得有个补偿备用方案,以提升整个服务的可用性。

引入依赖

        <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控制台进行配置。

3 thoughts on “Alibaba Sentinel实现服务降级

回复 曾老师 取消回复

您的电子邮箱地址不会被公开。

A beliving heart is your magic My heart
欢迎来到Diuut的个人博客,这里是我的一些零零碎碎的知识汇总,希望有能帮到你的内容。 | 蜀ICP备2021011635号-1 | Copyright © 2024 Diuut. All Rights Reserved.