升級微服務架構1:搭建Eureka Server服務中心

來源:互聯網
上載者:User

   Spring Cloud中使用Eureka來做服務註冊和發現,來統一管理微服務執行個體。

  1.使用IDEA建立一個空的Maven項目做父模組

    (也可以不用父項目,所有模組都用平行結構)

  

  刪除父模組src檔案夾

  

  可使用Spring Initializr來建立模組或者建立Maven項目手動添加依賴

  2.使用Spring Initializr建立Eureka Server

  選擇SDK 1.8

  

  Artifact填寫對應模組的名稱

  

  依次選擇Cloud Discovery->Eureka Server,Spring Boot預設選擇的是2.0.4

  

  可以參考Spring Cloud官方對應的Spring Cloud版本對應組件的版本,可以看到Finchley.SR1對應的是Spring Boot 2.0.4.RELEASE版

  projects.spring.io/spring-cloud/

  

  建立好後會還原Maven項目的依賴,需要一段時間。

  2.1配置Eureka Server註解
  還原成功後會產生一個模組名稱+Application的啟動類,在類名上加上@EnableEurekaServer註解用來申明這是個Eureka伺服器

  

  2.2配置Eureka Server設定檔

  設定檔可參考號官方文檔,找到對應的Spring Cloud版本,點擊Reference。

   

  http://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#spring-cloud-eureka-server

  搜尋找到Standalone Mode單機模式

  

  

  將項目中的application.properties尾碼名改為yml,把application.yml的設定檔內容複寫到項目中。

  port為服務的連接埠,可以自訂,我這裡把連接埠改為了8881
  idea使用Debug啟動成功後,在瀏覽器輸入:http://localhost:8881/ 有一下內容則說明該服務啟動成功。

   

  

   3.使用Maven項目建立Eureka Server

  建立一個空的Maven項目,在父模組建立的會自動選中父模組

  

  將項目中的pom檔案parent節點全部刪除,到Spring Cloud官網複製Maven項目的依賴相關內容到pom檔案的project節點下

  

  官網的依賴檔案是Eureka客戶的依賴,把dependencies節點下的依賴都刪除

  添加Eureka Server的依賴:  

<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>

  再添加Spring Cloud版本屬性

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

  在resources檔案夾中添加application.yml檔案,並設定為資源根目錄,設定檔內容和第一一樣,改下連接埠為:8882

  

  建立啟動類(項目名+Application.java),寫一個main方法啟動Spring Boot程式,並加上Eureka Server的註解

  

  配置Spring Boot啟動配置項

  

  選擇對應的啟動類

  

  啟動該模組,成功後再瀏覽器輸入:http://localhost:8882/,使用Maven建立的Eureka Server項目也成功啟動了

   

  4.建立Eureka Server叢集

   叢集的作用是一個服務複製多份執行個體,當某一個執行個體掛掉後不至於影響整個系統,Eureka Server叢集中的每個執行個體都是相互複製來保障所註冊的服務一致。

實際生產環境中只要有一個Eureka Server通過不同的執行個體對應配置不同的連接埠來實現,為方便示範,我這裡建立叢集就採用剛剛建立的兩個不同的Eureka Server來做。

  在官方文檔中搜尋:Peer Awareness
  http://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#spring-cloud-eureka-server-peer-awareness
  找到對應的叢集配置

  

 

   修改Host檔案,添加 127.0.0.1 peer1 peer2,並將服務名設定一樣

  服務1配置:

  

server:  port: 8881eureka:  instance:    hostname: peer1  client:    registerWithEureka: true #把自身當做用戶端註冊到其他Eureka伺服器    fetchRegistry: true #在本機快取所有執行個體註冊資訊    serviceUrl:      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/      #設定與Eureka Server互動的地址,查詢服務和註冊服務都需要依賴這個地址。      ##指向另一個註冊中心      defaultZone: http://peer2:8882/eureka/spring:  #profiles: peer1  #沒做環境配置,注釋掉  application:    name: tmsapi-discovery-server

  服務2配置:

server:  port: 8882eureka:  instance:    hostname: peer2  client:    registerWithEureka: true #把自身當做用戶端註冊到其他Eureka伺服器    fetchRegistry: true #在本機快取所有執行個體註冊資訊    serviceUrl:      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/      #設定與Eureka Server互動的地址,查詢服務和註冊服務都需要依賴這個地址。      ##指向另一個註冊中心      defaultZone: http://peer1:8881/eureka/spring:  #profiles: peer2  #沒做環境配置,注釋掉  application:    name: tmsapi-discovery-server

  啟動兩個服務,成功瀏覽器輸入:http://peer1:8881/ 和http://peer2:8882/,同一個Application中就有兩個執行個體了
  peer1:

  

  peer2:

  

  至此Eureka Server叢集就搭建成功了。

 

  Eureka相關資料:

  53131023

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.