從零開始使用IDEA建立多個Eureka伺服器叢集(一)

2020-10-15 12:00:13


前言

使用IDEA建立多個Eureka伺服器的流程及可能遇到的錯誤


一、new一個springboot工程

1.選擇spring Initializr初始化一個springboot工程

第一步

2.選擇你的jdk版本,點選next

第二步

3.新增建立Eureka的伺服器所需要的依賴(springboot的版本要選擇自己的版本)

第三步

4.修改專案名點finish完成建立

在這裡插入圖片描述
專案建立完成後,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>

此處為專案的資訊

二、建立第一個Eureka伺服器

1.右擊我們建立的springboot工程,new一個module模組,並選擇maven工程

在這裡插入圖片描述


在這裡插入圖片描述

點選next之後只需更改模組名即可點選finish建立完成

在這裡插入圖片描述


此處不再建立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倉庫的設定是否正確
在這裡插入圖片描述


2.設定Eureka伺服器模組

在resource目錄下建立application.yml檔案
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叢集建立完成,各個伺服器之間將通過此地址進行資訊註冊和資訊共用


最後在java目錄下建立啟動類

啟動類

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伺服器已經設定成功了!!
在這裡插入圖片描述


三、可能遇到的錯誤

1.maven的設定問題

maven的倉庫路徑要設定正確,IDEA會自己建立maven路徑,建議改回自己的maven路徑。

2.模組未註冊

如果建立的模組名並沒有加粗;如圖在這裡插入圖片描述
此時可能是子模組並沒有在父模組下注冊!
檢視父模組pom檔案,加上

<modules>
        <!-- 子版塊 -->


        <module>detailcloud-eureka</module>



    </modules>

重新整理maven設定,模組名變粗,表示啟用
在這裡插入圖片描述