1. 程式人生 > >SpringCloud初體驗之Eureka

SpringCloud初體驗之Eureka

Eureka簡介

SpringBoot簡化了Spring工程的複雜度,之前複雜的Spring工程被拆分成了一個個小的SpringBoot工程。那麼SpringBoot之間如何通訊,相互獲取資訊呢?這就用到了SpringCloud的Eureka小弟來組合管理這一個個小的SpringBoot,稱其為微服務架構。Eureka就相當於管家,SpringBoot工程通過他來相互呼叫。當然Eureka也是一個SpringBoot工程,通過修改配置檔案來讓他變身成管家。那我們現在就需要建立3個SpringBoot工程,一個用來當作管家,兩個用當作奴隸,由管家來統治他們。

管家Eureka的建立

新增依賴

通過Idea建立一個普通的SpringBoot工程,不要再用Eclipse了,Idea更好用。
SpringCloud與SpringBoot的版本問題還是得注意,我公司使用SpringBoot版本為1.5.10.RELEASE那麼與其相對應的SpringCloud版本就為Dalston.RELEASE.其他相對應得版本
所以在pom.xml檔案中新增SpringCloud的依賴以及eureka依賴:

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

修改application.properties檔案

server.port=8888

# 不向註冊中心註冊自己
eureka.client.register-with-eureka=false

# 不需要檢索服務
eureka.client.fetch-registry=false

eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

新增@EnableEurekaServer註解

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

此時訪問http://localhost:8888/ 就能看到eureka介面了.因為目前沒有服務註冊,所以Application是空的。

使用者user和訂單order的建立

新增依賴

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

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

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

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

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Dalston.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

在application.properties配置檔案中加上註冊中心的配置:

eureka.client.service-url.defaultZone=http://localhost:8888/eureka/
# 以自身ip註冊,不然預設註冊本機
# instance:
#   prefer-ip-address: true
#   ip-address: 10.68.29.152
server.port=8282

並在主類中加入@EnableDiscoveryClient註解即可完成註冊服務。

可以看到,此時Application已經註冊了一個DIS-USER服務。