Spring Cloud微服務-基於Eureka的feign呼叫(1)
全文概覽
本章是為後續的深度學習做準備工作
主要包含以下內容
開發三個簡單應用,包括:註冊中心、服務提供方、服務消費方,後續研究和實戰都在這三個應用基礎上進行;
SpringCloud主要框架
服務發現——Netflix Eureka
服務呼叫——Netflix Feign
熔斷器——Netflix Hystrix
服務閘道器——Netflix Zuul
分散式配置——Spring Cloud Config
訊息匯流排 —— Spring Cloud Bus
版本列表
- JDK:1.8;
- spring boot:2.0.1.RELEASE;
- spring cloud:Finchley.M9;
服務發現元件 Eureka
Eureka是Netflix開發的服務發現框架,SpringCloud將它整合在自己的子專案
spring-cloud-netflix中,實現SpringCloud的服務發現功能。Eureka包含兩個元件:
Eureka Server和Eureka Client。
Eureka Server提供服務註冊服務,各個節點啟動後,會在Eureka Server中進行注
冊,這樣EurekaServer中的服務登錄檔中將會儲存所有可用服務節點的資訊,服務節點
的資訊可以在介面中直觀的看到。
Eureka Client是一個java客戶端,用於簡化與Eureka Server的互動,客戶端同時也
就別一個內建的、使用輪詢(round-robin)負載演算法的負載均衡器。在應用啟動後,將會
向Eureka Server傳送心跳,預設週期為30秒,如果Eureka Server在多個心跳週期內沒有
接收到某個節點的心跳,Eureka Server將會從服務登錄檔中把這個服務節點移除(預設90
秒)。
Eureka註冊中心
(1)建立eureka模組
(2)引入依賴 父工程pom.xml定義Spring Boot與Spring Cloud版本
eureka模組pom.xml引入eureka-server
(3)新增application.yml
(4)編寫啟動類
建立包com.qiang.eureka ,包下建立啟動類EurekaServer或EurekaApplication
*注意註解:@EnableEurekaServer
(5)啟動執行啟動類,然後在瀏覽器位址列輸入 http://localhost:6868/ 執行效果如下:
主介面中system status為系統資訊 General Info為一般資訊
Instances currently registered with Eureka為註冊到的所有微服務列表
我們現在就將一些微服務都註冊到Eureka中,這樣所有的微服務之間都可以互相呼叫了。
提供者微服務開發
(1)建立provider模組,引入eureka-client依賴
(2)新增application.yml
(3)編寫Controller層,隨便寫點東西.
(4)編寫啟動類ProviderApplication
*注意註解:@EnableEurekaClient
(5)啟動執行啟動類,此時重新整理http://localhost:6868/,然後就會發現,這個微服務已經被註冊至服務中心了
然後我們試著執行provider模組的介面:localhost:12003/admin/findAll/5/1,執行效果如下
嗯,執行成功,高興嗎^_^
接著我們寫一個消費者,這裡需講述清楚幾點
1、不管消費者還是提供者,他們都是一個微服務,他們都“各自為政”
2、當微服務之間需要互相呼叫介面時,他們才會有消費者與提供者的“身份”
3、被呼叫介面的所屬微服務為“提供者”,反之為“消費者”
4、只有當服務都註冊進Eureka註冊中心時,才能相互呼叫,或者說相互“發現”服務
消費者微服務開發
(1)建立feign模組,引入eureka-client依賴與openfeign依賴
(2)新增application.yml
(3)編寫啟動類FeignApplication
*注意註解:@EnableDiscoveryClient 發現服務
@EnableFeignClients 使用feign發現服務
此時可不寫@EnableEurekaClient,上面兩個註解會實現將此服務註冊進服務中心
但是eureka-client依賴一定要引入
(4)在feign模組新增client包,包下建立介面PClient(ProviderClient)
@FeignClient註解用於指定從哪個服務中呼叫功能 ,注意 裡面的名稱與被呼叫的服務
名保持一致,並且不能包含下劃線。
@RequestMapping註解用於對被呼叫的微服務進行地址對映。注意 @PathVariable注
解一定要指定引數名稱,否則出錯
(5)編寫FeignController
(6)啟動執行類,此時再次重新整理http://localhost:6868,會發現feign微服務已經被註冊進去
然後我們試著執行feign模組的介面:localhost:12001/feign/admin/findAll/5/1,執行效果如下
成功√
相關文章
- Eureka微服務之間呼叫-feign微服務
- SpringCloud微服務(基於Eureka+Feign+Hystrix+Zuul)SpringGCCloud微服務Zuul
- 二、Spring Cloud 之旅 -- Eureka 微服務的釋出與呼叫SpringCloud微服務
- 【Spring Cloud】Eureka實現微服務釋出與呼叫SpringCloud微服務
- Spring Cloud Alibaba(8)---Feign服務呼叫SpringCloud
- Spring Cloud Feign 宣告式服務呼叫SpringCloud
- 宣告式服務呼叫 Spring Cloud FeignSpringCloud
- 基於Spring Cloud的微服務落地SpringCloud微服務
- 微服務Spring Cloud17_Feign9微服務SpringCloud
- spring cloud微服務快速教程之(十四)spring cloud feign使用okhttp3--以及feign呼叫引數丟失的說明SpringCloud微服務HTTP
- 微服務架構 | 4.2 基於 Feign 與 OpenFeign 的服務介面呼叫微服務架構
- (十七)spring cloud微服務分散式雲架構-eureka 基礎SpringCloud微服務分散式架構
- 基於 Spring Cloud 的微服務腳手架SpringCloud微服務
- Spring Cloud+ Eureka微服務基礎專案搭建(已實現呼叫增刪改查微服務,持續更新)SpringCloud微服務
- 微服務呼叫元件 Feign微服務元件
- 微服務互相呼叫-Feign微服務
- SpringBoot+Eureka註冊中心+Feign進行微服務之間呼叫Spring Boot微服務
- Eureka的微服務之間呼叫微服務
- Eureka實現微服務的呼叫微服務
- 基於Spring Cloud微服務叢集的服務治理思考SpringCloud微服務
- spring cloud微服務架構-Eureka保護機制SpringCloud微服務架構
- Spring Cloud Alibaba系列(三)使用feign進行服務呼叫SpringCloud
- 微服務實戰SpringCloud之Spring Cloud Feign替代HTTP Client微服務SpringGCCloudHTTPclient
- 初識Spring Cloud Eureka(三)(Eureka客戶端之間 服務的相互呼叫)SpringCloud客戶端
- 基於Spring Boot和Spring Cloud實現微服務架構Spring BootCloud微服務架構
- Eureka-實現微服務的呼叫微服務
- 服務治理: Spring Cloud EurekaSpringCloud
- Spring Cloud之微服務之間相互呼叫、如何讓一個微服務呼叫另外一個微服務SpringCloud微服務
- spring cloud微服務分散式雲架構-服務消費者FeignSpringCloud微服務分散式架構
- 基於Istio/gRPC/Redis/BigQuery/Spring Boot/Spring Cloud和Stackdriver的微服務案例RPCRedisSpring BootCloud微服務
- Spring Cloud OpenFeign:基於Ribbon和Hystrix的宣告式服務呼叫SpringCloud
- spring cloud feign實現遠端呼叫服務傳輸檔案SpringCloud
- spring cloud微服務分散式雲架構(三)-服務消費者(Feign)SpringCloud微服務分散式架構
- 129、springcloud-eureka-client微服務的互相呼叫SpringGCCloudclient微服務
- Spring Cloud微服務基礎元件實戰SpringCloud微服務元件
- Bug集錦-Spring Cloud Feign呼叫其它介面報錯SpringCloud
- spring cloud 和 阿里微服務spring cloud AlibabaSpringCloud阿里微服務
- spring cloud分散式微服務:Spring Cloud ConfigSpringCloud分散式微服務