springboot+feign+Hystrix整合(親測有效)
- pom依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>3.0.6</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> <version> 2.2.10.RELEASE</version> </dependency>
- properties 開啟選項
feign: client: config: default: #發(fā)起重試的時間間隔3s feignPeriod: 3000 #發(fā)起重試的最大時間間隔10s,單位毫秒 feignMaxPeriod: 10000 #重試次數(shù)2,如果需要重試1次,就設(shè)置為2 feignMaxAttempts: 3 #5s connectTimeout 和 readTimeout 必須同時配置 connectTimeout: 5000 readTimeout: 5000 writeTimeout: 5000 compression: request: enabled: true response: enabled: true httpclient: enabled: false okhttp: enabled: true circuitbreaker: enabled: true hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 5000
注:這里開啟選項為feign.circuitbreaker.enable=true,這是對2021年后的spring cloud版本的。 Spring Cloud CircuitBreaker 已經(jīng)是獨立項目了。 springcloud早期版本用下面這段配置在feign中生效:feign.hystrix.enabled=true
- Java code example
注意使用@EnableHystrix 和@EnableFeignClients
@EnableTransactionManagement @EnableAspectJAutoProxy @Configuration @SpringBootApplication(scanBasePackages = {"cn.com.datang.supersms"},exclude = {ArchaiusAutoConfiguration.class}) @EnableCaching @EnableFeignClients(basePackages = "cn.com.datang.supersms.rpc") @EnableHystrix public class AhohSuerSMSDeliveryApplication { public static void main(String[] args) { SpringApplication.run(AhohSuerSMSDeliveryApplication.class, args); } }
業(yè)務(wù)代碼
@FeignClient( name = "portrayalApi", url = "${datang.portrayal.addr}", fallbackFactory = PortrayalApiFallbackFactory.class ) public interface PortrayalApi { @GetMapping(value = "/upb2") String getInterestedCarsInfo(@RequestParam(value = "appid") String appid, @RequestParam(value = "type") String type, @RequestParam(value = "id") String id); } @Slf4j @Component public class PortrayalApiFallbackFactory implements FallbackFactory<PortrayalApi> { @Override public PortrayalApi create(Throwable cause) { return (appid, type, id) -> { log.warn("網(wǎng)絡(luò)調(diào)用異常,使用降級措施來處理了.異常信息:",cause); return null; }; } }
好了,到此結(jié)束,親自有效!更多相關(guān)springboot+feign+Hystrix內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中驗證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法
這篇文章主要介紹了Java中驗證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法,本文使用 Spock(可集成Spring Boot項目) 編寫測試用例,基于 Groovy (JVM語言),感興趣的朋友跟隨小編一起看看吧2024-12-12Mybatis下動態(tài)sql中##和$$的區(qū)別講解
今天小編就為大家分享一篇關(guān)于Mybatis下動態(tài)sql中##和$$的區(qū)別講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03Spring?Boot+Aop記錄用戶操作日志實戰(zhàn)記錄
在Spring框架中使用AOP配合自定義注解可以方便的實現(xiàn)用戶操作的監(jiān)控,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot+Aop記錄用戶操作日志實戰(zhàn)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Java 轉(zhuǎn)型(向上或向下轉(zhuǎn)型)詳解及簡單實例
這篇文章主要介紹了Java 轉(zhuǎn)型(向上或向下轉(zhuǎn)型)詳解及簡單實例的相關(guān)資料,需要的朋友可以參考下2017-02-02