Spring Cloud :搭建Eureka 註冊中心

最近學習了Spring Cloud 。簡單的搭建了一個Eureka,用於服務器之間的調用。

Eureka是Netflix開源的一款提供服務註冊和發現的產品,它提供了完整的Service Registry和Service Discovery實現。也是Spring Cloud 體系中最重要最核心的組件之一。

Spring Cloud 封裝了 Netflix 公司開發的 Eureka 模塊來實現服務註冊和發現。Eureka 採用了 C-S 的設計架構。Eureka Server 作爲服務註冊功能的服務器,它是服務註冊中心。而系統中的其他微服務,使用 Eureka 的客戶端連接到 Eureka Server,並維持心跳連接。這樣系統的維護人員就可以通過 Eureka Server 來監控系統中各個微服務是否正常運行。Spring Cloud 的一些其他模塊(比如Zuul)就可以通過 Eureka Server 來發現系統中的其他微服務,並執行相關的邏輯。

Eureka由兩個組件組成:Eureka服務器和Eureka客戶端。Eureka服務器用作服務註冊服務器。Eureka客戶端是一個java客戶端,用來簡化與服務器的交互、作爲輪詢負載均衡器,並提供服務的故障切換支持。Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。

用一張圖來認識以下:
在這裏插入圖片描述上圖簡要描述了Eureka的基本架構,由3個角色組成:
1、Eureka Server
提供服務註冊和發現
2、Service Provider
服務提供方
將自身服務註冊到Eureka,從而使服務消費方能夠找到
3、Service Consumer
服務消費方
從Eureka獲取註冊服務列表,從而能夠消費服務

案例實踐
配置Eureka服務器端
1.添加服務器端依賴

	<!-- 引入eureka server依賴 -->
		<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-server -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
			<version>2.1.2.RELEASE</version>
		</dependency>

2.配置propertities文件

server.port=6868
#註冊中心不需要註冊自己
eureka.client.register-with-eureka=false
#註冊中心不需要去發現服務
eureka.client.fetch-registry=false
#設置服務註冊中心的URL
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:${server.port}/eureka/

3.在啓動類添加@EnableEurekaServer
在這裏插入圖片描述
4,啓動Eureka的服務端,瀏覽器進行驗證,如下即可表示成功
在這裏插入圖片描述配置Eureka的客戶端
1.添加客戶端依賴

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
			<version>2.1.2.RELEASE</version>
		</dependency>

2.配置properties依賴

#配置cloud的客戶端
#設置服務註冊中心的URL
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:6868/eureka/
#配置可以跨域訪問
eureka.instance.prefer-ip-address=true

3.在啓動類添加 @EnableEurekaClient註解進行啓動
在這裏插入圖片描述
4.通過接口進行調用是,用的是REST API的方法進行調用的

@FeignClient("tensquare-base")
public interface BaseClient {

    @RequestMapping(value = "/label/{labelId}",method = RequestMethod.GET)
    public Result findById(@PathVariable("labelId") String labelId);
}

在這裏插入圖片描述
5.啓動客服端,可以發現客戶端服務註冊到了Eureka的服務器端了。
在這裏插入圖片描述
此致,一個簡單的Eureka之間的調用就完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章