加入依赖(之前已经在3个服务都加过了)
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>
开启Feign对Sentinel的支持

//在订单服务中添加feign:sentinel:enabled: true
改造订单服务的OrderService接口
//此接口的注解添加一个fallback参数并指定一个类@FeignClient(name="class-video-service", fallback = OrderServiceFallBack.class)public interface OrderService {//写上路径,自动会携带参数@GetMapping("/api/v1/video/find_by_id")Video findById(@RequestParam("videoId") int videoId);//插入 - 传递对象到视频服务@PostMapping("/api/v1/video/insert")void insert(@RequestBody Video video);}
新增OrderServiceFallBack.java

import com.study.pojo.Video;import com.study.service.OrderService;import org.springframework.stereotype.Service;//实现OrderService接口@Servicepublic class OrderServiceFallBack implements OrderService {//假设调用视频服务宕机,此处准备一个默认的视频返回@Overridepublic Video findById(int videoId) {//准备兜底数据Video video = new Video();video.setTitle("熔断降级数据");return video;}@Overridepublic void insert(Video video) {}}
启动测试
1.启动视频服务和订单服务,访问:http://localhost:8000/api/v1/video_order/save?video2.将视频服务停止,访问:http://localhost:8000/api/v1/video_order/save?video
返回的是兜底数据,不会返回500错误
