Spring Cloud(Finchley版)-05-服務註冊與服務發現-Eureka入門

http://www.globalshopping.top

 

本節講解基於Eureka的服務發現。

Eureka簡介

Eureka是Netflix開源的服務發現組件,本身是一個基於REST的服務,包含Server和Client兩部分,Spring Cloud將它集成在子項目Spring Cloud Netflix中。

拓展閱讀

  • Eureka的GitHub:https://github.com/Netflix/Eureka

  • Netflix是一家在線影片租賃提供商。

  • Eureka的典故:阿基米德發現浮力時,非常開心,於是說:“Eureka!”意思是“我找到了!”。Netflix將它們的服務發現組件命名爲Eureka實在是非常形象。

理解跟我學Spring Cloud(Finchley版)-04-服務註冊與服務發現-原理剖析 所講的服務發現原理後,我們來編寫基於Eureka的服務發現——首先編寫一個Eureka Server,然後將前文的微服務都註冊到Eureka Server上。

編寫Eureka Server

  • 加依賴

    1
    2
    3
    4
    5
    6
    
    <dependencies>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
      </dependency>
    </dependencies>
    
  • 加註解

    1
    2
    3
    4
    5
    6
    7
    
    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaApplication {
      public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
      }
    }
    
  • 寫配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    server:
      port: 8761
    eureka:
      client:
        # 是否要註冊到其他Eureka Server實例
        register-with-eureka: false
        # 是否要從其他Eureka Server實例獲取數據
        fetch-registry: false
        service-url: 
          defaultZone: http://localhost:8761/eureka/
    

TIPS

這裏,大家可先不去探究registerWithEureka 以及fetchRegistry 究竟是什麼鬼,筆者將在下一節爲大家揭曉。

將應用註冊到Eureka Server上

  • 加依賴

    1
    2
    3
    4
    
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
  • 加註解

    1
    2
    3
    4
    5
    6
    
    @SpringBootApplication
    public class ProviderUserApplication {
      public static void main(String[] args) {
        SpringApplication.run(ProviderUserApplication.class, args);
      }
    }
    

    注意:早期的版本(Dalston及更早版本)還需在啓動類上添加註解@EnableDiscoveryClient@EnableEurekaClient ,從Edgware開始,該註解可省略。

  • 添加配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    spring:
      application:
        # 指定註冊到eureka server上的服務名稱,對於電影微服務,本系列將名稱設爲microservice-consumer-movie
        name: microservice-provider-user
    eureka:
      client:
        service-url:
          # 指定eureka server通信地址,注意/eureka/小尾巴不能少
          defaultZone: http://localhost:8761/eureka/
      instance:
        # 是否註冊IP到eureka server,如不指定或設爲false,那就會註冊主機名到eureka server
        prefer-ip-address: true
    

測試

  • 依次啓動Eureka Server以及用戶微服務、電影微服務;

  • 訪問http://localhost:8761 可觀察到類似如下界面:

    Eureka Server-01

  • 將用戶微服務停止,可看到Eureka Server首頁變成類似如下界面:

    Eureka Server-02

配套代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章