03微服務(wù)調(diào)用組件feign實(shí)戰(zhàn)_第1頁
03微服務(wù)調(diào)用組件feign實(shí)戰(zhàn)_第2頁
03微服務(wù)調(diào)用組件feign實(shí)戰(zhàn)_第3頁
03微服務(wù)調(diào)用組件feign實(shí)戰(zhàn)_第4頁
03微服務(wù)調(diào)用組件feign實(shí)戰(zhàn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JAVA項(xiàng)目中如何實(shí)現(xiàn)接口調(diào)用?Http是ApacheJakartaCommon下的子項(xiàng)目,用來提供高效的、的、功能豐富的支持Http協(xié)議的客戶端編程工具包,并且它支持HTTP協(xié)議版本和建議。Http相比傳統(tǒng)JDK自帶的URLConnection,提升了易用性和靈活性,使客戶端發(fā)送HTTP請(qǐng)求變得容易,提高了開發(fā)的效率。2)一個(gè)處理網(wǎng)絡(luò)請(qǐng)求的開源項(xiàng)目,是安卓端最火的輕量級(jí)框架,由SquareHttpUrlConnection和Apache 。OkHttp擁有簡(jiǎn)潔的API、高效的性能,并支持多種協(xié)(HTTP/2和SPDY)。3)HttpURLConnection是Java的標(biāo)準(zhǔn)類,它繼承自URLConnection,可用于向指定發(fā)送GET請(qǐng)求POST請(qǐng)求。HttpURLConnection使用比較復(fù)雜,不像 RestTemte是Spring提供的用于Rest服務(wù)的客戶端,RestTemte提供了多種便HTTP 更加便捷、優(yōu)雅地調(diào)用HTTPAPIFeign支持多種注解,例如Feign自帶的注解或者JAX-RS注解等。SpringCloudopenfeign對(duì)Feign進(jìn)行了增強(qiáng),使其支持SpringMVC注解,另外還整合了Ribbon和Eureka,從而使得Feign的使用更加方便Feign到使用HTP請(qǐng)求服務(wù)時(shí)就像調(diào)用本地方法一樣的體驗(yàn),開發(fā)者完全感知不到這是方法,更感知不到這是個(gè)TTP請(qǐng)求。它像Dubbo一樣consumer直接調(diào)用接口方法調(diào)用provider,需要通過常規(guī)的Http 構(gòu)造請(qǐng)求再解析返回?cái)?shù)據(jù)。它解決了讓開發(fā)者調(diào)用接口就跟調(diào)用本地方法一樣,無需關(guān)注與的交互細(xì)節(jié),更無需關(guān)注分布式環(huán)境開發(fā)。 1publicinterfaceOrderFeignService@RequestMappublicRfindOrderByUserId(@PathVariable("userId")Integer56OrderFeignServiceRresult=1.4)Feign//encoder指定對(duì)象編碼方式,decoder指定對(duì) .target(RemoteService.class,SpringCloudAlibaba快速整合 1@Feign 2publicinterfaceOrderFeignService3@RequestMappublicRfindOrderByUserId(@PathVariable("userId")Integer6 提示:FeignSpringCloudFeign 遇到Bug,比如接口調(diào)用失敗、參數(shù)沒收到等問題,或者想看看調(diào)用性能,就需要配置Feign的日志了,以此讓Feign把請(qǐng)求信息輸出來。////注意:此處配置@Configuration通過源碼可以看到日志等級(jí)有42)局部配置,讓調(diào)用的微服務(wù)生效,在3)在2)局部配置,讓調(diào)用的微服務(wù)生效,在3)在yml配置文件中執(zhí)行com.tuling.mall.feigndemo.feign:SpringCloudFeignFeignSpringMVCFeign是不支持SpringMVC注解的,如果你想在SpringCloud SpringMvcContract。1)**修改契約配置,支持Feign注意:修改契約配置后,OrderFeignService不再支持springmvc的注解,需要使用FeignOrderFeignService中配置使用Feign1@Feign publicinterfaceOrderFeignService@RequestLine("GETpublicRfindOrderByUserId(@Param("userId")Integer5contract:feigncontract:feign.Contract.Default#指定Feign常 去傳遞認(rèn)證信息,比如Basc認(rèn)證方式。Feign 可以直接配置Basic認(rèn)每次每次feign發(fā)起http調(diào)用之前,會(huì)去執(zhí) 統(tǒng)一添加header requestInterceptorsrequestInterceptors[0]:#配 mall-order端可以通過@RequestHeader通過Options可以配置連接超時(shí)時(shí)間和超時(shí)時(shí)間,Options的第一個(gè)參數(shù)是連接的超時(shí)時(shí)間(ms),默認(rèn)值是2s;第二個(gè)是請(qǐng)求處理的超時(shí)時(shí)間(ms),默認(rèn)值是5s。補(bǔ)充說明:Feign的底層用的是Ribbon,但超時(shí)時(shí)間以Feign配置為準(zhǔn)Feign中默認(rèn)使用JDK原生的URLConnection發(fā)送HTTP請(qǐng)求, 配置Apache然后修改yml然后修改yml配置,將Feign的Apache關(guān)于配置可參考源碼:1<groupId>io.然后修改yml配置,將Feign然后修改yml配置,將Feign的禁用,啟用OkHttp關(guān)于配置可參考源碼: GZIP開啟壓縮可以有效節(jié)約網(wǎng)絡(luò)資源,提升接口性能 可以配置GZIP來壓縮數(shù)據(jù)注意:只有當(dāng)Feign的 不是okhttp3的時(shí)候,壓縮才會(huì)生效,配置源碼代碼就是@ConditionalOnMissingBean(type="okhttp3.OkHttp "),表示SpringBeanFactory中不包含指定的bean時(shí)條件匹配,也就是沒有啟用okhttp3時(shí)才會(huì)進(jìn)行壓縮配置。Feign中提供了自定義的編碼器設(shè)置,同時(shí)也提供了多種編的實(shí)現(xiàn),比如Gson、Jaxb、Jackson。可以用不同的編碼器來處理數(shù)據(jù)的傳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論