Git源碼: https://github.com/chenhang666/SpringCloud
1、Eureka是什麼
- Eureka是Netflix的一個子模塊,也是核心模塊之一。
- Eureka是一個基於REST的服務,用於定位服務,以實現雲端中間服務發現和故障轉移。
- 服務註冊與發現對於微服務架構來說是非常重要的,有了服務發現與註冊,只需要使用服務的標識符,就可以訪問到服務,而不需要修改服務調用的配置文件了。
- 功能類似於dubbo的註冊中心,比如Zookeeper。
2、Eureka基本架構
- Spring Cloud封裝了Netflix公司的Eureke模塊來實現服務註冊和發現。
- Eureka採用了C-S的設計架構,Eureka Server作爲服務註冊功能的服務器,它是服務註冊中心。
- 系統中的其他微服務,使用Eureka的客戶端連接到Eureka Server並維持心跳連接。這樣系統的維護人員就可以通過Eureka Server來監控系統中各個微服務是否正常運行。SpringCloud 的一些其他模塊(比如Zuul)就可以通過Eureka Server來發現系統中的其他微服務,並執行相關的邏輯。
Eureka包含兩個組件:Eureka Server和Eureka Client
- Eurekka Server提供服務註冊服務,各個節點啓動後,會在Eureka Server中進行註冊,這樣Eureka
Server中的服務註冊表中將會存儲所有可用服務節點的信息,服務節點的信息可以在界面中直觀的看到。 - Eureka Client是一個Java客戶端,用於簡化Eureka Server的交互,客戶端同時也具備一個內置的、使用輪詢負載算法的負載均衡器。在應用啓動後,將會向Eureka Server發送心跳(默認週期爲30秒)。如果Eureka Server在多個心跳週期內沒有接收到某個節點的心跳,Eureka Server將會從服務註冊表中把這個服務節點移除(默認90秒)
三大角色
- Eureka Server 提供服務註冊和發現
- Service Provider服務提供方將自身服務註冊到Eureka,從而使服務消費方能夠找到
- Service Consumer服務消費方從Eureka獲取註冊服務列表,從而能後消費服務
3、搭建Eureka Server服務
- 創建SpringBoot項目,導入依賴
<!--eureka-server服務端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
- 創建application.yml,配置Euraka
- 增加Eureka Server註解
- 啓動項目,訪問localhost:7001,顯示如下圖即發佈成功
4、微服務註冊進Eureka服務中心
- 在服務端添加依賴
<!--將微服務provider註冊進eureka-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
- 在服務端的配置文件中增加以下配置
eureka:
client: #客戶端註冊進eureka服務列表內
service-url:
defaultZone: http://localhost:7001/eureka
- 在啓動類上增加註解
- 啓動項目,訪問Eureka Server,Application下存在服務項目即註冊服務成功