spring cloud 2.0 入門系列一 (4)斷路器-Hystrix
阿新 • • 發佈:2019-01-26
Spring Cloud Hystrix
Hystrix [hɪst’rɪks]的中文含義是豪豬, 因其背上長滿了刺,而擁有自我保護能力. Netflix的 Hystrix 是一個幫助解決分散式系統互動時超時處理和容錯的類庫, 它同樣擁有保護系統的能力.
服務說明
應用說明
使用框架
- SpringBoot 2.0.3
- SpringCloud Finchley.RELEASE
服務搭建
上一篇文章我們對Feign做簡單的介紹,我們在Feign的基礎上使用Hystrix
pom檔案修改
增加Hystrix依賴
<!-- hystrix斷路器 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
修改啟動檔案
增加註釋@EnableHystrix
增加FeignClient介面實現類
@Component public class ExternalPersonServiceFallback implements ExternalPersonService { private static final Logger logger = LoggerFactory.getLogger(ExternalPersonServiceFallback.class); @Override public Person findPerson(String searchColumn, String searchValue) { logger.error("使用者服務呼叫失敗,請檢查相服務關節點是否異常!"); Person person = new Person(); person.setFdName("匿名使用者"); person.setFdLoginName("anonymous"); return person; } }
修改FeignClient介面註釋
@FeignClient(value = "server-user", url = "http://localhost:8781", fallback = ExternalPersonServiceFallback.class) public interface ExternalPersonService { /** * 查詢組織架構使用者 * * @param searchColumn 查詢的欄位 * @param searchValue 查詢的資料 * @return */ @RequestMapping(value = "/person/findPerson", method = RequestMethod.GET) public Person findPerson(@RequestParam("searchColumn") String searchColumn, @RequestParam("searchValue") String searchValue); }
測試
- 呼叫介面應用啟動時呼叫正常程式;
- 呼叫介面應用掉線時,呼叫fallback程式