在上一篇文章中,咱們使用了ribbon進行負載均衡,可是仔細思考一下,咱們的請求封裝和調用以及結果的返回都是咱們本身編碼完成的,若是須要調用的接口不少,那麼無疑開發量是比較大的,那有沒有比較好的方式呢?答案就是feign.讓咱們先經過代碼來看一下feign的使用:
首先,咱們須要複製一份consumer的代碼,而且重命名爲dhp-micro-service-consumer-feign:
git
而後修改代碼以下:
1.新增maven依賴:
github
2.修改代碼:
首先新增一個feign的接口:
安全
另外,若是要經過Feign進行遠程調用,依然須要安全服務提供方的認證問題,所幸feign裏面已經集成了這塊功能:
負載均衡
此時,準備工做已經作好了,修改controller的代碼:
maven
而後啓動起來試一試:
編碼
說明feign已經繼承成功,能夠看到,和以前的代碼量相比,使用feign以後代碼已經簡潔許多了,而且若是producer啓動了集羣,能夠發現feign自帶負載均衡功能,由於feign也集成了ribbon,咱們用兩張圖來對比一下:
在沒有集成feign以前,咱們是直接走ribbon:
blog
集成feign以後,咱們是走feign:
繼承
咱們能夠新增ribbon策略試一試:
接口
再次啓動,會發現負載均衡規則是隨機訪問了.開發
咱們已經知道,feign最主要的做用就是將Rest服務的信息轉化爲接口,這其中還有其餘的一些地方應該要考慮,好比:數據的壓縮.Rest協議更多的傳輸的是文本,JSON或者XML,若是用戶發送的請求很大,這個時候有必要對數據進行壓縮處理,feign自己提供了對壓縮的支持:
介紹完了feign,下一篇文章,咱們會介紹服務熔斷與降級hystrix,敬請期待.
本文的GitHub地址
本文由博客一文多發平臺 OpenWrite 發佈!