Spring-cloud微服務實戰【六】:接口服務feign

在上一篇文章中,咱們使用了ribbon進行負載均衡,可是仔細思考一下,咱們的請求封裝和調用以及結果的返回都是咱們本身編碼完成的,若是須要調用的接口不少,那麼無疑開發量是比較大的,那有沒有比較好的方式呢?答案就是feign.讓咱們先經過代碼來看一下feign的使用:
首先,咱們須要複製一份consumer的代碼,而且重命名爲dhp-micro-service-consumer-feign:
filegit

而後修改代碼以下:
1.新增maven依賴:
filegithub

2.修改代碼:
首先新增一個feign的接口:
file安全

另外,若是要經過Feign進行遠程調用,依然須要安全服務提供方的認證問題,所幸feign裏面已經集成了這塊功能:
file負載均衡

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

而後啓動起來試一試:
file
file編碼

說明feign已經繼承成功,能夠看到,和以前的代碼量相比,使用feign以後代碼已經簡潔許多了,而且若是producer啓動了集羣,能夠發現feign自帶負載均衡功能,由於feign也集成了ribbon,咱們用兩張圖來對比一下:
在沒有集成feign以前,咱們是直接走ribbon:
fileblog

集成feign以後,咱們是走feign:
file繼承

咱們能夠新增ribbon策略試一試:
file接口

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

數據壓縮

咱們已經知道,feign最主要的做用就是將Rest服務的信息轉化爲接口,這其中還有其餘的一些地方應該要考慮,好比:數據的壓縮.Rest協議更多的傳輸的是文本,JSON或者XML,若是用戶發送的請求很大,這個時候有必要對數據進行壓縮處理,feign自己提供了對壓縮的支持:
file

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

本文由博客一文多發平臺 OpenWrite 發佈!

相關文章
相關標籤/搜索