目錄
(1)概述:
Feign 是一個聲明式的僞 Http 客戶端,它使得寫 Http 客戶端變得更簡單。使用 Feign,只需要創建一個接口並註解。它具有可插拔的註解特性,可使用 Feign 註解和 JAX-RS 註解。Feign 支持可插拔的編碼器和解碼器。Feign 默認集成了 Ribbon,Nacos 也很好的兼容了 Feign,默認實現了負載均衡的效果。
因此在使用springCloudAlibaba微服務的時候,強烈推薦使用Feign來作爲微服務之間相互調用訪問的方式。
(2)引入依賴:
因爲商品微服務相當於是服務提供者,訂單微服務相當於是服務消費者,只有在服務消費者中才需要訪問調用服務提供者的接口,因此需要在訂單微服務的pom.xml中增加Feign的依賴:
(3)修改啓動類:
在啓動類上增加 @EnableFeignClients 註解開啓 Feign 功能。
(4)創建Feign接口:
Feign是面向接口開發的,因此先創建一個接口,通過Feign調用其它微服務所提供的接口,返回對應的信息。然後由消費者微服務項目中的controller或者service類中,通過創建項目中創建的Feign對象,然後調用對應的Feign接口方法即可完成微服務調用,就像調用本地接口一樣。
(5)修改微服務調用:
修改消費者微服務項目中的controller或者service類中,通過創建項目中創建的Feign對象,然後調用對應的Feign接口方法即可完成微服務調用。
(6)啓動測試:
先啓動nacos中心,然後啓動商品微服務、訂單微服務。訪問訂單微服務的接口還是和原來一樣可以正常的訪問返回信息。因此修改Feign接口成功。
(7)測試Feign負載均衡:
A、服務提供者多實例啓動:
修改商品微服務(服務提供者)的接口方法,打印一下當前實例的端口號。然後設置idea的商品微服務可以多實例啓動。然後商品微服務啓動一次,然後修改下server.port的值再啓動一個實例,即可完成商品微服務的多實例啓動。
通過查看nacos中product-server也是啓動了2個實例:
B、測試負載均衡:
通過手動刷新瀏覽器中訪問訂單微服務的接口,可以查看商品微服務多個實例啓動界面中,打印的服務訪問接口信息,可以得出結論,調用商品微服務的多個實例是輪流訪問的,實現了負載均衡。說明使用的Feign自動集成Ribbon,實現了負載均衡的效果。