国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Cloud Feign組成配置過(guò)程解析

瀏覽:78日期:2023-09-18 16:08:51

Feign的組成

接口 作用 默認(rèn)值 Feign.Builder Feign的入口 Feign.Builder Client Feign底層用什么去請(qǐng)求 和Ribbon配合時(shí):LoadBalancerFeignClient 不和Ribbon配合時(shí):Fgien.Client.Default Contract 契約,注解支持 SpringMVCContract Encoder 解碼器,用于將獨(dú)享轉(zhuǎn)換成HTTP請(qǐng)求消息體 SpringEncoder Decoder 編碼器,將相應(yīng)消息體轉(zhuǎn)成對(duì)象 ResponseEntityDecoder Logger 日志管理器 Slf4jLogger RequestInterceptor 用于為每個(gè)請(qǐng)求添加通用邏輯(攔截器,例子:比如想給每個(gè)請(qǐng)求都帶上heared) 無(wú)

Feign的日記級(jí)別

日志級(jí)別 打印內(nèi)容 NONE(默認(rèn)) 不記錄任何日志 BASIC 僅記錄請(qǐng)求方法,URL,響應(yīng)狀態(tài)代碼以及執(zhí)行時(shí)間(適合生產(chǎn)環(huán)境) HEADERS 記錄BASIC級(jí)別的基礎(chǔ)上,記錄請(qǐng)求和響應(yīng)的header FULL 記錄請(qǐng)求和弦ineader,body和元數(shù)據(jù)

首先如何整合Feign

遵循SpringBoot的三板斧第一步:加依賴

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

第二步:寫注解

@EnableFeignClients //在啟動(dòng)類上加

第三步:寫配置

如何給Feign添加日志級(jí)別

細(xì)粒度

方式一:代碼實(shí)現(xiàn)第一步:添加Feign配置類,可以添加在主類下,但是不用添加@Configuration。如果添加了@Configuration而且又放在了主類之下,那么就會(huì)所有Feign客戶端實(shí)例共享,同Ribbon配置類一樣父子上下文加載沖突;如果一定添加@Configuration,就放在主類加載之外的包。建議還是不用加@Configuration。

public class FeignConfig { @Bean public Logger.Level Logger() { return Logger.Level.FULL; }}

第二步:給@FeignClient添加配置類

//@FeignClient configuration = GoodsFeignConfig.class 細(xì)粒度配置,指定配置類@FeignClient(name = 'goods', configuration = FeignConfig.class)

第四步:寫配置

logging: level: com.xxx.xxx.FeignAPI: DEBUG #需要將FeignClient接口全路徑寫上# 開(kāi)啟日志 格式為logging.level. Feign客戶端路徑

方式二:配置屬性實(shí)現(xiàn)

feign: client: config: #想要調(diào)用的微服務(wù)名稱 server-1: loggerLevel: FULL

全局配置

方式一:代碼實(shí)現(xiàn)添加了@Configuration放在了主類之下,那么就會(huì)所有Feign客戶端實(shí)例共享,同Ribbon配置類一樣父子上下文加載沖突;讓父子上下文ComponentScan重疊(強(qiáng)烈不建議)唯一正確方式

//在啟動(dòng)類上為@EnableFeignClients注解添加defaultConfiguration配置@EnableFeignClients(defaultConfiguration = FeignConfig.class)

方式二:配置屬性實(shí)現(xiàn)

feign: client: config: #將調(diào)用的微服務(wù)名稱改成default就配置成全局的了 default: loggerLevel: FULL

Feign支持的配置項(xiàng)

代碼方式

配置項(xiàng) 作用 Logger.Level 指定日志級(jí)別 Retryer 指定重試策略 ErrorDecoder 指定錯(cuò)誤解碼器 Request.Options 超時(shí)時(shí)間 Collection 攔截器 SetterFactory 用于設(shè)置Hystrix的配置屬性,F(xiàn)gien整合Hystrix才會(huì)用

配置屬性

feign: client: config: feignName: connectTimeout: 5000 # 相當(dāng)于Request.Optionsn 連接超時(shí)時(shí)間 readTimeout: 5000 # 相當(dāng)于Request.Options 讀取超時(shí)時(shí)間 loggerLevel: full # 配置Feign的日志級(jí)別,相當(dāng)于代碼配置方式中的Logger errorDecoder: com.example.SimpleErrorDecoder # Feign的錯(cuò)誤解碼器,相當(dāng)于代碼配置方式中的ErrorDecoder retryer: com.example.SimpleRetryer # 配置重試,相當(dāng)于代碼配置方式中的Retryer requestInterceptors: # 配置攔截器,相當(dāng)于代碼配置方式中的RequestInterceptor - com.example.FooRequestInterceptor - com.example.BarRequestInterceptor # 是否對(duì)404錯(cuò)誤解碼 decode404: false encode: com.example.SimpleEncoder decoder: com.example.SimpleDecoder contract: com.example.SimpleContract

Feign還支持對(duì)請(qǐng)求和響應(yīng)進(jìn)行GZIP壓縮,以提高通信效率,配置方式如下:

# 配置請(qǐng)求GZIP壓縮feign.compression.request.enabled=true# 配置響應(yīng)GZIP壓縮feign.compression.response.enabled=true# 配置壓縮支持的MIME TYPEfeign.compression.request.mime-types=text/xml,application/xml,application/json# 配置壓縮數(shù)據(jù)大小的下限feign.compression.request.min-request-size=2048

Ribbon配置 VS Feign配置

粒度 Ribbon Feign 代碼局部 @RibbonClient(configuration=RibbonConfig.class),RibbonConfig類必須加@Configuration,且必須放在父上下文無(wú)法掃到的包下 @FeignClient(configuration=FeignConfig.class),F(xiàn)eignConfig類的@Configuration可以不加(可選),如果有,必須放在父上下文無(wú)法掃到的包下 代碼全局 @RibbonClients(defaultConfigurtion=RibbonConfig.class) @EnableFeignClients(defaultConfiguration = FeignConfig.class) ... 配置屬性局部 .ribbon.NFLoadBalancerClassName ... feign.client.config..loggerLevel ... 配置屬性全局 無(wú) feign.client.config.default.loggerLevel

Feign 代碼方式 VS 配置屬性方式

配置方式 有點(diǎn) 缺點(diǎn) 代碼配置 基于代碼,更加靈活 如果Feign的配置類加了@Configuration注解,需注意父子上下文,線上修改需要重打包,發(fā)布 屬性配置 易上手 配置更加直觀 線上修改無(wú)需重新打包,發(fā)布 優(yōu)先級(jí)更高 極端場(chǎng)景下沒(méi)有代碼配置更加靈活

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 成年女人免费视频播放成年m | 中文字幕二区 | 日韩高清在线播放不卡 | 日本无玛 | 一区二区三区四区在线 | 国产一区二区三区免费在线观看 | 性色综合 | 午夜性爽视频男人的天堂在线 | 亚洲男女免费视频 | 精品国产爱久久 | 国产成人免费在线观看 | 久久精品国产99国产精品 | 免费看欧美日韩一区二区三区 | 亚洲三级中文字幕 | 日韩精品免费视频 | 黄a一级 | 国产麻豆一级在线观看 | 怡红院免费的全部视频国产a | 毛片免费观看的视频在线 | 国产精品免费观看视频播放 | aaa毛片免费观看 | 免费观看a黄一级视频 | 特黄女一级毛片 | 国产精品久久久久久搜索 | 在线观看欧洲成人免费视频 | 港台三级在线观看 | 99re热久久| 99re久久精品国产首页2020 | 国产自在自线午夜精品视频 | 18videosex性欧美69超高清 | 免费午夜扒丝袜www在线看 | 996久久国产精品线观看 | 4四虎44虎www在线影院麻豆 | 看美女毛片 | 久久久久久日本一区99 | 99爱视频免费高清在线观看 | 国产三片高清在线观看 | 手机在线色 | 深夜福利爽爽爽动态图 | 国产成人午夜性视频影院 | 亚色网站 |