1. 程式人生 > >Spring-cloud微服務實戰【六】:介面服務feign

Spring-cloud微服務實戰【六】:介面服務feign

在上一篇文章中,我們使用了ribbon進行負載均衡,但是仔細思考一下,我們的請求封裝和呼叫以及結果的返回都是我們自己編碼完成的,如果需要呼叫的介面很多,那麼無疑開發量是比較大的,那有沒有比較好的方式呢?答案就是feign.讓我們先通過程式碼來看一下feign的使用:
首先,我們需要複製一份consumer的程式碼,並且重新命名為dhp-micro-service-consumer-feign:

然後修改程式碼如下:
1.新增maven依賴:

2.修改程式碼:
首先新增一個feign的介面:

另外,如果要通過Feign進行遠端呼叫,依然需要安全服務提供方的認證問題,所幸feign裡面已經集成了這塊功能:

此時,準備工作已經做好了,修改controller的程式碼:

然後啟動起來試一試:

說明feign已經繼承成功,可以看到,和之前的程式碼量相比,使用feign之後程式碼已經簡潔許多了,並且如果producer啟動了叢集,可以發現feign自帶負載均衡功能,因為feign也集成了ribbon,我們用兩張圖來對比一下:
在沒有整合feign之前,我們是直接走ribbon:

整合feign之後,我們是走feign:

我們可以新增ribbon策略試一試:

再次啟動,會發現負載均衡規則是隨機訪問了.

資料壓縮

我們已經知道,feign最主要的作用就是將Rest服務的資訊轉化為介面,這其中還有其他的一些地方應該要考慮,比如:資料的壓縮.Rest協議更多的傳輸的是文字,JSON或者XML,如果使用者傳送的請求很大,這個時候有必要對資料進行壓縮處理,feign本身提供了對壓縮的支援:

介紹完了feign,下一篇文章,我們會介紹服務熔斷與降級hystrix,敬請期待.
本文的GitHub地址

本文由部落格一文多發平臺 OpenWrite 釋出!