1. 程式人生 > >Spring Cloud 的Eureka服務註冊與發現

Spring Cloud 的Eureka服務註冊與發現

Eureka

雲端服務發現,一個基於 REST 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。引用[Spring Cloud中文網]

在Spring Cloud中使用Eureka來進行服務註冊與發現,通過Eureka管理各個微服務(感覺類似Zookeeper),這裡簡單的描述一下如果夠贊Eureka的服務註冊與發現。

1 構建註冊服務

1.1 pom引用

首先構建一個普通的Spring Boot應用,在pom檔案中新增一些必須的引用。

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

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

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

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

感覺這裡真正有用的應該是spring-cloud-starter-eureka-server.

1.2 配置

在專案的application.properties中新增基本的配置資訊。

server.port=8081
spring.application.name=eureka

eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
eureka.instance.prefer-ip-address=true

這裡server.port表示埠,spring.application.name為應用名稱,defaultZone為Eureka的註冊地址。預設Eureka在啟動後,預設會向自己進行註冊,可以通過設定“eureka.client.registerWithEureka=false”來禁止該行為(不過禁止後,有其他奇怪的情況發生)。

1.3 啟動Eureka Server服務

啟動Eureka Server服務非常簡單,只要使用@EnableEurekaServer註解,就可以在一個普通的Spring Boot專案上開啟Eureka Server服務。

@SpringBootApplication
@EnableEurekaServer
public class DiscoverApp {
    public static void main(String[] args){
        SpringApplication.run(DiscoverApp.class, args);
    }
}

在這些都完成後,可以啟動該Spring Boot應用,訪問本地 http://localhost:8081/,就會看到如下介面:


可以看到這裡會有一個註冊服務,即Eureka自己。

2 註冊服務

實現一個Eureka服務的Client端,同樣簡單。

2.1 pom引用

2.2 配置

2.3 啟動Eureka Client服務

3 遇到的問題

4 參考