使用IDEA建立多個Eureka伺服器的流程及可能遇到的錯誤
專案建立完成後,maven將根據pom.xml檔案自動匯入依賴中的jar包。(依賴也可以通過手動輸入的方式匯入)
當專案建立成功,可在pom檔案中看到如下程式碼段
<groupId>com.yc.Lwc</groupId>
<artifactId>detailcloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>detailcloud</name>
<description>Demo project for Spring Boot</description>
此處為專案的資訊
此處不再建立springboot工程而選擇了maven工程,是因為此模組是基於我們之前建立的springboot工程的,故detailcloud為detailcloud-erueka的父模組,建立完成後檢視模組的pom檔案,可以看到此片段:
<parent>
<artifactId>detailcloud</artifactId>
<groupId>com.yc.Lwc</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>detailcloud-eureka</artifactId>
<name>detailcloud-eureka</name>
此處的parent標籤表示detailcloud與本模組是父子的關係,也就是說我們建立的detailcloud-erueka模組可以使用父模組中的jar包而在父模組中,父可以規定子模組使用的jar包版本
以上的pom檔案操作如果發生標紅報錯,則可能是maven的設定問題,請在此介面檢查maven倉庫的設定是否正確
在resource目錄下建立application.yml檔案
在application檔案中進行eureka的資訊設定
server:
port: 7001
eureka:
instance:
hostname: eureka1
client:
service-url:
defaultZone: http://admin:a@eureka1:7001/eureka,http://admin:a@eureka2:7002/eureka,http://admin:a@eureka3:7003/eureka
yml的語法十分嚴格,注意縮排關係和冒號後的空格!!!
此處設定eureka的伺服器埠port=7001
存取地址hostname設為eureka1(此處需要在windows下 c:\windows\system32\drivers\etc/hosts新增對映設定 如在檔案中新增127.0.0.1 eureka1,就新增了一個原生的地址對映)
client:
service-url:
defaultZone: http://admin:a@eureka1:7001/eureka,http://admin:a@eureka2:7002/eureka,http://admin:a@eureka3:7003/eureka
此處 service-url設定了多個eureka伺服器的地址,當eureka叢集建立完成,各個伺服器之間將通過此地址進行資訊註冊和資訊共用
package com.yc.Lwc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* @author Liweicheng
* @create 2020/10/11 - 20:38
*/
@SpringBootApplication
@EnableEurekaServer //啟用 eureka伺服器
public class EurekaApp {
public static void main(String[] args) {
SpringApplication.run( EurekaApp.class, args );
}
}
至此,第一個eureka伺服器已經設定成功,將伺服器啟動,控制檯看到如下介面
此時我們第一個eureka伺服器已經啟動成功,但為什麼會報錯呢?這裡是因為eureka伺服器的心跳機制,每30秒,eurekaclient要向eurekaserver傳送一個心跳訊號表示eurekaclient存活,我們目前還沒有設定eurekaclient到伺服器,所以目前eureka伺服器會一直報錯。
現在在瀏覽器輸入我們設定的地址 http://eureka1:7001/
當你看到如下介面,恭喜你,第一個eureka伺服器已經設定成功了!!
maven的倉庫路徑要設定正確,IDEA會自己建立maven路徑,建議改回自己的maven路徑。
如果建立的模組名並沒有加粗;如圖
此時可能是子模組並沒有在父模組下注冊!
檢視父模組pom檔案,加上
<modules>
<!-- 子版塊 -->
<module>detailcloud-eureka</module>
</modules>
重新整理maven設定,模組名變粗,表示啟用