前言
對于使用spring cloud進(jìn)行實(shí)現(xiàn)微服務(wù)的時候時候消返,通常使用feign作為api接口調(diào)用的相關(guān)組件俊鱼。對于常規(guī)的使用這里不進(jìn)行具體說明那婉,主要是對聯(lián)調(diào)時不通過注冊中心直接對接的方法進(jìn)行說明卸亮。主要有以下兩種方法
- 通過feign注解@FeignClient的url屬性
- 通過ribbon的相關(guān)配置
為了便于說明塑荒,進(jìn)行如下的假設(shè)熄赡,有兩個子系統(tǒng)
子系統(tǒng)a服務(wù)名為micro-server-a,服務(wù)地址為10.206.19.100袜炕,端口為8080
子系統(tǒng)b服務(wù)名為micro-server-b本谜,服務(wù)地址為10.206.19.110,端口為8080
子系統(tǒng)a需要通過調(diào)用子系統(tǒng)b的接口/inner/api提供的服務(wù)
通過@FeignClient的url屬性
@FeignClient注解的url屬性偎窘,最主要的作用是與其他系統(tǒng)對接時乌助,可以通過配置該屬性,封裝對其他系統(tǒng)的訪問接口陌知。我們可以借助該屬性進(jìn)行子系統(tǒng)間的聯(lián)調(diào)他托,@FeignClient的配置如下
@FeignClient(name = "micro-server-b", url = "http://10.206.19.110:8080", fallback = FeignApiFallbackComponent.class)
這種方式將兩個子系統(tǒng)作為無關(guān)系統(tǒng)直接調(diào)用,只適合與開發(fā)環(huán)境上面做聯(lián)調(diào)仆葡,聯(lián)調(diào)結(jié)束之后需要刪除url屬性赏参。
- 主要的缺點(diǎn)是如果沒有刪除直接上傳,會導(dǎo)致代碼結(jié)果被破壞沿盅,而且不利于調(diào)試定位把篓。需要通過修改代碼來實(shí)現(xiàn)
- 主要的優(yōu)點(diǎn)是聯(lián)調(diào)比較簡單
通過ribbon相關(guān)配置
feign在子系統(tǒng)間調(diào)用時,主要是借助于ribbon進(jìn)行負(fù)載均衡的腰涧,因此韧掩,我們可以通過配置ribbon屬性,方便的進(jìn)行聯(lián)調(diào)窖铡。
feign的配置如下:
@FeignClient(name = "micro-server-b", fallback = FeignApiFallbackComponent.class)
在spring boot開發(fā)時疗锐,我們通常會針對開發(fā)環(huán)境配置application-dev.properties文件作為開發(fā)環(huán)境的配置。因此费彼,我們可以在該文件中增加如下的配置滑臊,直接進(jìn)行聯(lián)調(diào)
ribbon.eureka.enabled=false
micro-server-b.ribbon.listOfServers=10.206.19.110:8080
其中,micro-server-b為我們在@FeignClient中配置的name箍铲。
程序啟動的時候雇卷,需要加上如下的程序參數(shù)
--spring.profiles.active=dev
通過這種方式,就可以直接在開發(fā)環(huán)境中進(jìn)行聯(lián)調(diào)颠猴,主要是通過spring boot的配置文件進(jìn)行的聋庵。這種方式的主要優(yōu)缺點(diǎn)如下
- 主要的優(yōu)點(diǎn)是,打包之后環(huán)境不同芙粱,不會相互影響祭玉,確保生產(chǎn)環(huán)境的正確性。在部署到生產(chǎn)環(huán)境之后春畔,也可以通過該方式脱货,測試子系統(tǒng)間的可用性
- 主要的缺點(diǎn)是岛都,需要增加一個配置文件
結(jié)論
為了確保代碼和包的健壯性,建議通過ribbon相關(guān)配置進(jìn)行子系統(tǒng)聯(lián)調(diào)