Feign,Apache Http Client,OkHttp的区别
一、在Java中可以使用的HTTP客戶端組件主要有3個,如下:
- (1)HttpURLConnection,JDK自帶
- (2)Apache HttpComponents,獨立的HTTP客戶端實現,使用廣泛,目前已發展到5.x版本,詳見:https://hc.apache.org/index.html
- (3)OkHttp,一個新出現的HTTP客戶端,詳見:https://square.github.io/okhttp/
為什么已經存在了如Apache HTTPClient和OkHttp這樣優秀HTTP客戶端組件了,還會出現Feign呢?難道不是重復性開發嗎?
實際上,Feign是一個Http客戶端框架,它并沒有去做跟Apache HTTPClient或OkHttp一樣重復的事情,而是開發了一個框架,用于集成URLConnection,Apache Http Client,OkHttp實現具體的HTTP請求。
Feign基于注解實現配置,提供了許多貼近業務層更加豐富實用的功能,如:重試機制等,這才是Feign真正的亮點。
spring-cloud-openfeign是在Spring Cloud框架集成Feign時獨立封裝的一個組件,核心功能還是Feign的能力,但是spring-cloud-openfeign提供了在Spring容器環境中使用Feign時更加方便的一些配置和注解。
https://spring.io/projects/spring-cloud-openfeign。如果項目中使用了Spring框架,推薦直接使用spring-cloud-openfeign組件會更加便捷。
二、Feign在默認情況下,它發送Http請求使用的是JDK源生的HttpURLConnection
在實際生產環境下,直接使用它是100%不可取的,這就需要我們使用更加高效的HC。Feign的模塊中有三個關于HC的子模塊:feign-okhttp、feign-httpclient、feign-googlehttpclient
關于使用okhttp替換openfeign默認的HttpURLConnection,參考文章
總結
以上是生活随笔為你收集整理的Feign,Apache Http Client,OkHttp的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从spring-session存储结构探
- 下一篇: 国庆中秋双节快乐 | 马云不再担任阿里巴