【SpringCloud-Alibaba系列教程】9.Fegin整合sentinel

简介: 接下来的章节,White带着大家以微服务架构和设计模式落地实战的方式,进行讲解和实现SpingCloud的代码开发。本章节主要使用sentinel更加优雅,与Fegin结合。

我们开始吧

首先我们需要在配置文件中配置Fegin的相关规则

#开启fegin对sentinel支持
feign:
  sentinel:
    enabled: true

然后我们创建容错实现类
image.png

其次就是在Fegin调用接口的时候加上fallback
image.png
我们在controller中编写相关逻辑

if (product.getPid()==-1){
    Order order = new Order();
    order.setPid(-1);
    order.setPname("下单失败");
    return order;
}

然后我们测试一下。当商品微服务挂掉以后可以看到会自动进入容错逻辑。
image.png

这样我们就实现了相关的容错,但是这样也会有一个问题,我们这样是没有异常的,不方便我们的查找,其实还有另外一个方式,就是实现fallbackfactory
其实和fallback是差不多的。
我们来实现一下。新建ProductServiceFallbackFactory
image.png

然后在配置的时候使用(两个不能同时使用)
image.png
再次测试就可以看到我们的容错
image.png
image.png

这样我们就完成了基本的容错实现机制
后期会在这个项目上不断添加,喜欢的请点个start~
项目源码参考一下分支220216_xgc_FeginAndSentinel
Gitee:https://gitee.com/coderxgc/springcloud-alibaba
GitHub:https://github.com/coderxgc/springcloud-alibaba

目录
相关文章
|
5天前
|
Java 测试技术 数据安全/隐私保护
SpringCloud微服务之最全JWT学习教程03
SpringCloud微服务之最全JWT学习教程03
95 0
|
5天前
|
Sentinel
Sentinel实现黑白名单控制详细教程来了
Sentinel实现黑白名单控制详细教程来了
|
5天前
|
Java 数据安全/隐私保护 Sentinel
微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
|
5天前
|
Java API Nacos
第十二章 Spring Cloud Alibaba Sentinel
第十二章 Spring Cloud Alibaba Sentinel
30 0
|
5天前
|
SpringCloudAlibaba 监控 Java
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
|
5天前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
245 0
|
5天前
|
SpringCloudAlibaba 监控 Java
SpringCloud Alibaba Sentinel实现熔断与限流--学习笔记
SpringCloud Alibaba Sentinel实现熔断与限流--学习笔记
30 0
|
5天前
|
SpringCloudAlibaba Sentinel 索引
【九】SpringCloud Alibaba之整合Sentinel(实现热点控制)
【九】SpringCloud Alibaba之整合Sentinel(实现热点控制)
36 1
|
5天前
|
SQL SpringCloudAlibaba Sentinel
【八】SpringCloud Alibaba之整合Sentinel(实现流量控制3)
【八】SpringCloud Alibaba之整合Sentinel(实现流量控制3)
35 2
|
5天前
|
SpringCloudAlibaba Java 测试技术
【七】SpringCloud Alibaba之整合Sentinel(实现流量控制2)
【七】SpringCloud Alibaba之整合Sentinel(实现流量控制2)
32 1