搭建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