SpringCloud02 Eureka知識點、Eureka服務端和用戶端的建立、Eureka服務端叢集、Eureka用戶端向叢集的Eureka服務端註冊

來源:互聯網
上載者:User

標籤:spring   cli   2018年   官網   註冊   class   server   使用   pre   

 1 Eureka知識點

  按照功能劃分:

    Eureka由Eureka服務端和Eureka用戶端組成

  按照角色劃分:

    Eureka由Eureka Server、Service Provider、Service Consumer組成

      Eureka Server:提供服務註冊和發現(即:服務註冊中心)

      Service Provider:服務提供者(即:為其他微服務提供資料資源的服務),將自身的服務資訊註冊到 Eureka Server 中去供 Service Consumer 使用 

      Service Consumer:服務消費方(即:需要其他服務提供的資料資源進行邏輯處理的服務),從 Eureka Server 中擷取 Service Provider 的資訊,從而擷取Service Provider提供的資料資源

      技巧01:其實大部分微服務可能既是服務提供者也是服務消費方

  1.1 Eureka服務端

    Eureka伺服器用作服務註冊伺服器,相當於阿里系微服務架構中的Zookeeper。

  1.2 Eureka用戶端

    Eureka用戶端是一個java用戶端,用來簡化與伺服器的互動、作為輪詢負載平衡器,並提供服務的故障切換支援。

 

2 Eureka服務端建立【單例模式】

  建立Eureka相關項目時需要引入SpringCloud的依賴管理器和Eureka服務端依賴

  2.1 利用IDEA建立

    版本說明:

      JDK:1.8

      MAVEN:3.5

      IDEA:2017.2 旗艦版

    2.1.1 建立一個SpingBoot項目

    2.1.2 選擇相關依賴

      選擇依賴時只需要選擇Eureka Server的依賴就可以,我這裡選擇其他兩個依賴只是為了開發方便而已

      技巧01:SpringBoot的版本預設會是最新的,由於我們建立的是SpringCloud相關的項目,所以IDEA會自動為我們引入SprngCloud的依賴管理器;但是SpringCloud依賴管理器的版本和SpringCloud提供的組件的版本是由嚴格的要求,詳情請參見官網;版本對應關係如下:

 

     2.1.3 根據官網的版本要求修改pom.xml檔案

      根據官網的提供的版本對應表修改即可

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>cn.xinagxu</groupId>    <artifactId>eureka</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>eureka</name>    <description>Demo project for Spring Boot</description>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.0.4.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>        <java.version>1.8</java.version>        <spring-cloud.version>Finchley.SR1</spring-cloud.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>            <scope>runtime</scope>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>    <dependencyManagement>        <dependencies>            <dependency>                <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-dependencies</artifactId>                <version>${spring-cloud.version}</version>                <type>pom</type>                <scope>import</scope>            </dependency>        </dependencies>    </dependencyManagement>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>
pom.xml    2.1.4 在啟動類上添加@EnableEurekaServer註解

      @EnableEurekaServer是指明這個項目作為一個Eureka服務端使用

    2.1.5 啟動應用

      啟動應用後會報錯,錯誤資訊如下:

      報錯原因:Eureka服務端也會像Eureka用戶端一樣可以向一個註冊中心進行註冊,從Eureka的源碼中可以看到 Eureka Server 預設的註冊中心為:http://localhost:8761/eureka/,由於我們並沒有建立這個項目所以建立的Eureka Server項目會不斷向這個不存在的註冊中心進行註冊,所以上面這個錯誤會不斷的出現控制台

      解決辦法01:關閉Eureka Server向另外註冊中心或者隻身進行註冊的功能【即:關閉Eureka Server的的Eureka Client功能】,在設定檔中添加下面的配置就可以實現這個功能【PS:官方推薦】

        技巧01:雖然關閉了Eureka Server向另外註冊中心或者自身進行註冊的功能,但是控制台還是會報錯;但是這次只會出現兩次錯誤資訊了,可能我們配置的資訊在 Eureka Server 已經向預設的註冊中心發起註冊請求後才生效才造成的這兩次報錯資訊

        技巧02:關閉了Eureka Server向另外註冊中心或者隻身進行註冊的功能後啟動Eureka Server後的效果

      解決辦法02:向另外註冊中心或者隻身進行註冊(由於現在沒有其他註冊中心,所以本博文將其註冊到自身),在設定檔中添加下面的配置就可以實現這個功能:

        技巧01:雖然配置Eureka Server向自身進行註冊的功能,但是控制台還是會報錯;但是這次只會出現兩次錯誤資訊了,可能我們配置的資訊在 Eureka Server 已經向預設的註冊中心發起註冊請求後才生效才造成的這兩次報錯資訊

        技巧02:配置Eureka Server向自身進行註冊的功能後啟動Eureka Server後的效果

 

  2.2 利用Maven建立

    根據官方文檔進行建立即可,待更新......2018年8月25日14:15:10

 

3 Eureka Server叢集

  3.1 建立三個Eureka Server項目

    按照2.1的步驟進行建立即可,當然直接複製建立好的項目也可以

  3.2 修改各個項目的設定檔

 

 

 

 

      

    

 

SpringCloud02 Eureka知識點、Eureka服務端和用戶端的建立、Eureka服務端叢集、Eureka用戶端向叢集的Eureka服務端註冊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.