閱讀845 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使用 Eureka 實現服務注冊與發現

Eureka 是 Netflix 出品的用於實現服務注冊和發現的工具。 Spring Cloud 集成了 Eureka,並提供了開箱即用的支持。其中, Eureka 又可細分為 Eureka Server 和 Eureka Client。

本例子將演示如何通過 Spring Cloud Eureka 來快速實現服務的注冊和發現。

開發環境

  • Gradle 4.0
  • Spring Boot 2.0.0.M3
  • Spring Cloud Netflix Eureka Server Finchley.M2
  • Spring Cloud Netflix Eureka Client Finchley.M2

從 Spring Initializr 進行項目的初始化

訪問https://start.spring.io/ 進行項目的初始化。我們將該項目命名為micro-weather-eureka-server

eurake-start

更改配置

根據下麵兩個博客的指引來配置,加速項目的構建。

啟用 Eureka Server

為啟用 Eureka Server ,在 Application 上增加@EnableEurekaServer注解即可。

@SpringBootApplication
@EnableEurekaServer
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

修改項目配置

修改 application.properties,增加如下配置。

server.port: 8761

eureka.instance.hostname: localhost
eureka.client.registerWithEureka: false
eureka.client.fetchRegistry: false
eureka.client.serviceUrl.defaultZone: https://${eureka.instance.hostname}:${server.port}/eureka/

其中:

  • server.port: 指明了應用啟動的端口號
  • eureka.instance.hostname: 應用的主機名稱
  • eureka.client.registerWithEureka: 值為false意味著自身僅作為服務器,不作為客戶端
  • eureka.client.fetchRegistry: 值為false意味著無需注冊自身
  • eureka.client.serviceUrl.defaultZone: 指明了應用的URL

啟動 Eureka Server

啟動應用,訪問https://localhost:8761/,可以看到 Eureka Server 自帶的 UI 管理界麵。

eurake-ui

創建 Eureka Client

我們在micro-weather-eureka-server基礎上,將創建一個micro-weather-eureka-client 作為客戶端,並演示如何讓將自身向注冊服務器進行注冊,讓其可以其他服務都調用。

更改配置

增加如下配置:

dependencies {
    //...

    compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')

    //...
}

一個最簡單的 Eureka Client

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class Application {

    @RequestMapping("/hello")
    public String home() {
        return "Hello world";
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

其中@EnableDiscoveryClient啟用了服務發現的功能,隻要 Eureka Client 啟動了,就能被 Eureka Server 所感知。

項目配置:

spring.application.name: micro-weather-eureka-client

eureka.client.serviceUrl.defaultZone: https://localhost:8761/eureka/

運行

分別在 8081 和 8082 上啟動了客戶端示例。

java -jar micro-weather-eureka-client-1.0.0.jar --server.port=8081

java -jar micro-weather-eureka-client-1.0.0.jar --server.port=8082

可以在 Eureka Server 上看到這兩個實體的信息。

eurake-client

源碼

最後更新:2017-09-18 00:04:42

  上一篇:go  非IO優化、經典網絡的ECS實例支持升級到企業級實例
  下一篇:go  回形針換別墅 - openBarter (古人的物物交換市場) 泛撮合交易係統