SpringCloud OpenFeign 熔斷實作
OpenFeign 消費者 OpenFeign 默認支持負載均衡
OpenFeign maven配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
OpenFeign 介面
/**
*Feign是宣告性Web服務客戶端,它使撰寫Web服務客戶端更加容易,要使用Feign,
* 請創建一個介面并對其進行注釋,
* 它具有可插入注釋支持,包括Feign注釋和JAX-RS注釋,
* Feign還支持可插拔編碼器和解碼器,
* Spring Cloud添加了對Spring MVC注釋的支持,并
* 支持使用HttpMessageConvertersSpring Web中默認使用的注釋,
* Spring Cloud集成了Ribbon和Eureka以及Spring Cloud LoadBalancer,
* 以在使用Feign時提供負載平衡的http客戶端,
* https://docs.spring.io/spring-cloud-openfeign/docs/2.2.5.RELEASE/reference/html/
*/
@FeignClient(value="nacos-priovider",fallback=OpenFeignServiceImpl.class )
@Component
public interface OpenFeignService{
/**
* 使用@GetMapping時候成產者和消費者方法必須保持一致
*/
@GetMapping(value = "/hello", headers={"Content-Type=application/json;charset=UTF-8"})
public String hello();
}
OpenFeign 介面實作
@Component
public class OpenFeignServiceImpl implements OpenFeignService {
@Override
public String hello() {
/**
* 添加業務處理
*/
return " 網路例外,服務暫時無法訪問, !!!";
}
}
OpenFeign application.yml
feign:
hystrix:
enabled: true//默認關閉
OpenFeign FeignController
@RestController
public class FeignController {
@Resource
private OpenFeignService openFeignService;
@GetMapping(value = "/hello")
public String Dms(Long id){
System.out.println("====openfeign=="+id);
String paymentById = openFeignService.hello();
return paymentById ;
}
}
OpenFeign 啟動類
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableHystrix
public class NacosConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args);
}
OpenFeign 成產者和注冊中心這里就不說了
參考:SpringCloud-Nacos 下載安裝 https://blog.csdn.net/Lihshan/article/details/111224826
啟動多個生產者
1、使用Maven clean、package
2、找到專案 target 目錄執行命令指定埠號啟動
java -jar provider-0.0.1-SNAPSHOT.jar --server.port=8001
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242379.html
標籤:java
上一篇:try-with-resource如何優雅的關閉io流
下一篇:SpringCloud專案從訊息中間件中獲取到訊息(SpringCloud整合Netty和RabbitMQ以及WebSocket)
