因爲微服務各個服務之間是需要相互調用的,而且各個應用獨立部署,我們不能在每個應用中寫上需要調用的服務的ip地址和端口號,而且如果被調用者有很多我們改怎麼選擇,所以需要一個微服務註冊中心,當我們需要調用的時候,由註冊中心告訴我們被調用方的ip是什麼,所以有了Eureka。
Eureka 是 Netflix 開發的,一個基於 REST 服務的,服務註冊與發現的組件。
這裏我們創建一個多module的maven工程,eureka作爲其中一個module,且各個module沒有任何依賴,都是單體應用。
這裏我們採用各個組件的版本:
- Spring Boot :2.2.5.RELEASE
- Spring Cloud :Hoxton.SR3
- Jdk : 1.8
1. 創建spring-cloud-example工程
這裏我們創建一個普通的maven項目,項目名爲:spring-cloud-example,創建成功之後,把src和下邊的文件夾都刪掉。這個大工程主要是用來放各個module的,本身沒有任何代碼。
2. 創建server-eureka
2.1 創建SpringBoot moudule
輸入對應的Group和Artifact,點擊下一步下一步,直到完成創建。
2.2 引入eureka依賴
在server-eureka的pom.xml文件中增加以下dependency
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.3 修改配置文件
在application.properties文件中增加以下配置
# 設置服務端口號
server.port=8761
# 設置服務名稱
spring.application.name=server-eureka
# 設置eureka主機名
eureka.instance.hostname=127.0.0.1
# 是否在eureka服務器上註冊自己
eureka.instance.client.register-with-eureka=false
# 此客戶端是否獲取eureka服務器註冊表上的註冊信息
eureka.instance.client.fetch-registry=false
2.4 修改ServerEurekaApplication
ServerEurekaApplication增加@EnableEurekaServer註解,打開eureka服務
@SpringBootApplication
@EnableEurekaServer
public class ServerEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(ServerEurekaApplication.class, args);
}
}
2.5 運行服務
運行ServerEurekaApplication,啓動Eureka服務,啓動之後訪問http://127.0.0.1:8761,我們能看到以下界面:
我們可以看到一個SERVER-EUREKA的服務,這個就是我們剛剛啓動的服務。
至此Spring Cloud Eureka註冊中心搭建完成。
Git地址
https://gitee.com/hedavid/spring-cloud-example