本文章是系列文章中的一篇,本文章實(shí)現(xiàn)的是 使用 FeignClient 來(lái)實(shí)現(xiàn)微服務(wù)之間的相互調(diào)用,將所有的 FeignClient 封裝在一起。 Feign是一個(gè)聲明式的http客戶端,官方地址:
本項(xiàng)目中目前創(chuàng)建了兩個(gè)微服務(wù),order-service 訂單服務(wù);user-service用戶服務(wù),要實(shí)現(xiàn)的需求是在 訂單服務(wù)中,調(diào)用 user-service用戶服務(wù)的查詢(xún)用戶詳情接口。 FeignClient用來(lái)聲明一個(gè)接口是一個(gè)Feign客戶端,它可以輕松地與其他服務(wù)進(jìn)行通信,而無(wú)需編寫(xiě)大量的樣板代碼。 在SpringCloud 中,有兩中方式來(lái)實(shí)現(xiàn)微服務(wù)之間的相互調(diào)用: RestTemplate是Spring提供的用于訪問(wèn)Rest服務(wù)的客戶端工具類(lèi)
如下圖是本實(shí)例實(shí)現(xiàn)的微服務(wù)的一個(gè)基本調(diào)用方式: 首先創(chuàng)建一個(gè)module,命名為feign-api 然后填寫(xiě) module 的基本信息 然后刪除 自動(dòng)生成的多余的部分,留下空的項(xiàng)目 然后在 order-service 與 user-service 中添加 feign-api 的依賴(lài)如下
然后在 feign-api 中添加 openfeign 的依賴(lài)如下
Spring Cloud Starter OpenFeign 依賴(lài)是用于在 Spring Cloud 應(yīng)用程序中使用 OpenFeign 進(jìn)行聲明式 REST 調(diào)用的。 spring-cloud-starter-loadbalancer 它提供了一個(gè)輕量級(jí)的客戶端負(fù)載均衡器,可以用于在微服務(wù)架構(gòu)中進(jìn)行服務(wù)發(fā)現(xiàn)和負(fù)載均衡。 Feign-HttpClient是一個(gè)Java HTTP客戶端,它是Feign庫(kù)的一部分,用于簡(jiǎn)化HTTP API客戶端的開(kāi)發(fā)。它允許您使用注釋來(lái)定義HTTP API,然后使用Feign-HttpClient來(lái)處理HTTP請(qǐng)求和響應(yīng)。 然后在 feign-api 中創(chuàng)建一個(gè)調(diào)用用戶服務(wù)的 FeignUserClient FeignClient用來(lái)聲明一個(gè)接口是一個(gè)Feign客戶端,它可以輕松地與其他服務(wù)進(jìn)行通信,而無(wú)需編寫(xiě)大量的樣板代碼。 然后在 order-service 的啟動(dòng)類(lèi)中 指定Feign應(yīng)該掃描的包:
然后啟動(dòng)服務(wù)測(cè)試 當(dāng)然在實(shí)際業(yè)務(wù)處理中,還有很多細(xì)節(jié)要進(jìn)行處理,一文很難說(shuō)完善,這里只是描述了核心的一個(gè)思想。 最后就是源碼了:
|
|
來(lái)自: 程序員讀書(shū)空間 > 《待分類(lèi)》