1. 程式人生 > >搭建SpringCloud服務的註冊與發現Eureka註冊中心

搭建SpringCloud服務的註冊與發現Eureka註冊中心

一、服務的註冊與發現Eureka 

在這裡,我們需要用的的元件上Spring Cloud Netflix的Eureka ,eureka是一個服務註冊和發現模組。圖解說明

二、什麼是Eureka 

       官方的介紹在這裡Eureka wiki。Eureka是Netflix開源的一個RESTful服務,主要用於服務的註冊發現。Eureka由兩個元件組成:Eureka伺服器和Eureka客戶端。Eureka伺服器用作服務註冊伺服器。Eureka客戶端是一個java客戶端,用來簡化與伺服器的互動、作為輪詢負載均衡器,並提供服務的故障切換支援。Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。
在我看來,Eureka的吸引力來源於以下幾點:

開源:大家可以對實現一探究竟,甚至修改原始碼。

可靠:經過Netflix多年的生產環境考驗,使用應該比較靠譜省心

功能齊全:不但提供了完整的註冊發現服務,還有Ribbon等可以配合使用的服務。

基於Java:對於Java程式設計師來說,使用起來,心裡比較有底。

spring cloud可以使用Spring Cloud, 與Eureka進行了很好的整合,使用起來非常方便。

三、搭建Eureka註冊中心,實現服務註冊

3.1、建立maven專案EureKa-Server

   

 3.2、引入依賴

     <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
	</parent>
	<!-- 管理依賴 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Finchley.M7</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!--SpringCloud eureka-server -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>
	</dependencies>
	<!-- 注意: 這裡必須要新增, 否者各種依賴有問題 -->
	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/libs-milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

 

 3.3、配置application.yml

### 服務註冊中心埠號
server:
  port: 8888
###eureka 基本資訊配置 
eureka:
  instance:
###服務註冊中心例項的主機名
    hostname: localhost
  client:
###是否向服務註冊中心註冊自己
    registerWithEureka: false
###是否檢索服務,因為自己是為註冊中心,不需要檢索服務
    fetchRegistry: false
###服務註冊中心的配置內容,指定服務註冊中心的位置
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3.4 、啟動EurekaServer

@SpringBootApplication
@EnableEurekaServer
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

3.5 開啟eureka server 介面,檢視註冊中心,訪問 : http://localhost:8888/

  

 

3.6 、實現案例訂單服務呼叫會員服務查詢使用者資訊

 

     專案原始碼:https://github.com/Thinkingcao/EureKa-Server.git

     Eureka註冊服務提供者與服務消費者請看下一篇:    搭建SpringCloud註冊服務提供者和服務消費者之Eureka