Springcloud:服務註冊中心(Eureka) 入門
一、什麼是服務註冊中心
服務註冊中心是服務實現服務化管理的核心元件,類似於目錄服務的作用,主要用來儲存服務資訊,譬如提供者url 串、路由資訊等。服務註冊中心是SOA 架構中最基礎的設施之一。
1 服務註冊中心的作用
服務註冊與發現對於微服務系統來說非常重要。有了服務發現與註冊,你就不需要整天改服務呼叫的配置檔案了,你只需要使用服務的識別符號,就可以訪問到服務。
1.1,服務的註冊
當一個客戶端註冊到Eureka,它提供關於自己的元資料,Eureka通過一個服務從各個例項接收資訊。如果接收失敗超過配置的時間,例項將會正常從註冊裡面移除
1.2,服務的發現
服務發現是微服務基礎架構的關鍵原則之一。試圖著手配置每個客戶端或某種格式的約定可以說是非常困難的和非常脆弱的。Eureka是Netflix服務發現的一種服務和客戶端。這種服務是可以被高可用性配置的和部署,並且在註冊的服務當中,每個服務的狀態可以互相複製給彼此。
2 常見的註冊中心有哪些
2.1,Dubbo 的註冊中心Zookeeper
2.2,Sringcloud 的註冊中心Eureka
3 服務註冊中心解決了什麼問題
3.1. 服務管理
3.2. 服務的依賴關係管理
4 什麼是Eureka 註冊中心
Eureka 是Netflix 開發的服務發現元件,本身是一個基於REST 的服務。Spring Cloud將它整合在其子專案spring-cloud-netflix 中,以實現Spring Cloud 的服務註冊於發現,同時還提供了負載均衡、故障轉移等能力。
5 Eureka 註冊中心三種角色
5.1Eureka Server
通過Register、Get、Renew 等介面提供服務的註冊和發現。
5.2Application Service (Service Provider)
服務提供方
把自身的服務例項註冊到Eureka Server 中
5.3Application Client (Service Consumer)
服務呼叫方
通過Eureka Server 獲取服務列表,消費服務。
二、搭建服務註冊中心服務
1.匯出專案
開啟spring.io網頁https://start.spring.io/,建立springboot專案,選擇相關的依賴包:web、eureka server,匯出專案
我這裡將匯出的專案做了重新命名的修改,以符合一貫的風格,結構如下
2.pom.xml
檢視下pom檔案,可以看到Eureka服務的依賴如下。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
3.application.properties
注意第4行和第6行引數必須設定,因為現在做的是單點服務,而Eureka本身是一個基於REST 的服務,如果設定為true,會將自身註冊,這樣啟動時就會報錯了。
4.啟動檔案
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
主要新增@EnableEurekaServer 註解。啟動後訪問地址http://localhost:8761/
註冊中心啟動成功,但是還沒有服務,如上圖所示。
三、建立並註冊服務提供者 Eureka Client
將上面的Eureka-server 專案複製一份重新命名為eureka-client,專案結構如下
接下來只要將相應的檔案修改成client即可。
1. 修改pom.xml
將Eureka-server依賴改為eureka-client。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.修改application.properties
設定服務註冊中心地址,指向剛才建立的註冊中心。
3.修改啟動檔案
將註解@EnableEurekaServer 改成@EnableEurekaClient
啟動專案後,重新重新整理註冊中心頁面,即可發現相應的服務eureka-client,如下圖