之前项目已经引入了Feign和Sentinel的依赖,所以接下里先开启Feign对Sentinel的支持 ,如下:
接着我们要为下单接口做容错降级,保证订单服务高可用,下单接口会涉及到商品服务,所以需要对查询商品信息的远程接口做容错,先创建一个容错降级类ProductServiceFallback,它需要实现ProductService类,并重写方法,重写的方法可以理解成是原方法对应的降级方法,一旦下游服务出现问题,这些方法就是兜底方法,如下:
package com.example.mallorder.fallback;import com.example.mallcommon.domain.Product;import com.example.mallorder.fegin.ProductService;import org.springframework.stereotype.Component;@ComponentpublicclassProductServiceFallbackimplementsProductService{@Overridepublic ProductfindById(Integer pid){ Product product=newProduct(); product.setPid(-1);return product;}}
然后在@FeignClient注解上加上fallback属性,该属性指定的类就是对应的容错降级类了,如下:
在修改下单接口,方便看到测试结果,如下:
这样一旦远程调用商品微服务,查询商品信息失败,就会返回下单失败的提示。
接下来只启动mall-order服务,那么商品微服务没启动,远程调用是肯定是失败的,浏览器访问http://localhost:10020/order/prod/1,结果如下:
Feign整合Sentinel 实现降级的步骤和思路大致就是这样,至于如何更好的返回提示结果,根据项目自定义。
不过还存在一个问题,如果想在容错类中拿到具体的错误 ,方便之后的问题排查,应该怎么做?
热门文章
- 狗粮厂家批发中心电话(狗粮厂家批发中心电话多少)
- 5月3日→20M/S|免费节点Clash/SSR/V2rayC订阅链接地址分享
- 4月8日→21.8M/S|免费节点Clash/SSR/V2rayC订阅链接地址分享
- 在Spring配置文件中自定义标签如何实现
- 动物疫苗注射注意事项有哪些呢英语(动物注射疫苗应注意什么)
- 上海地区宠物领养微信群号查询平台(上海宠物领养救助基地是真的吗)
- 动物疫苗价格排行榜最新图片及价格大全 动物疫苗价格排行榜最新图片及价格大全图
- 我所在的城市有一个动物园用英语怎么说 我所在的城市有一个动物园用英语怎么说写
- 4月12日→22.8M/S|免费节点Clash/SSR/V2rayC订阅链接地址分享
- 宠物领养协议书范本免费版图片(宠物领养协议书范本免费版图片大全)