<!--nacos 服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--服务容错-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
服务消费者配置文件中开启对Sentinel的支持
feign:
sentinel:
enabled: true
package per.pz.openfeign;
import org.springframework.stereotype.Component;
@Component
public class StockFeignServiceFallback implements StockFeignService{
@Override
public String reduct(){
return "Fallback,降级了";
}
}
为OpenFeign远程调用接口添加fallback属性值指定容错类
package per.pz.openfeign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* name指定调用rest接口所对应的服务名
* path指定调用rest接口所在的StockController指定的RequestMapping
*/
@Service
@FeignClient(name = "stock-service",path = "/stock",fallback = StockFeignServiceFallback.class)
public interface StockFeignService {
//声明需要调用的rest接口对应的方法
@RequestMapping("/reduct")
String reduct();
}
/**
@RestController
@RequestMapping("stock")
public class stockController {
//读取配置文件中的端口
@Value("${server.port}")
String port;
@RequestMapping("/reduct")
public String reduct(){
System.out.println("扣减库存");
return "扣减库存111"+port;
}
}
*/