1. 程式人生 > >springcloud元件Eureka

springcloud元件Eureka

1.什麼是eureka

Eureka是Netflix開發的服務發現元件,本身是一個基於REST的服務。Spring Cloud將它整合在其子專案spring-cloud-netflix中,以實現Spring Cloud的服務發現功能。

2.在哪可以找到

3.如何使用

電商案例模擬:客戶端-->訂單微服務-->使用者微服務

3.1 建立父工程[springcloud-study]

3.1.1 程式碼結構

3.1.2 引入springcloud版本依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.iot</groupId>
    <artifactId>springcloud-study</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.13.RELEASE</version>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <dependencyManagement>
        <!--springcloud版本依賴-->
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

3.2 在父工程上建立[eureka-server]

3.2.1 刪除父工程src目錄

目錄結構

3.2.2 加入eureka服務端依賴

pom檔案

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springcloud-study</artifactId>
        <groupId>com.iot</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>
    <artifactId>eureka-server</artifactId>
    <dependencies>
        <!--eureka服務端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!--springboot打包外掛-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

3.2.3 建立Eureka 服務啟動類

package com.myx;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * 描述: Eureka 服務啟動類
 * @author: myx
 * @date: 2018/9/11
 * Copyright © 2018-hotpot. All rights reserved.
 */
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
    public static void main(String[] args) {
        new SpringApplicationBuilder(EurekaApplication.class).run(args);
    }
}

3.2.4 建立application.yml檔案

server:
  port: 8761
#spring
spring:
  application:
    name: eureka-server

eureka:
  client:
    #取消向eureka server(註冊中心)註冊
    register-with-eureka: false
    #取消向eureka server(註冊中心)獲取註冊資訊
    fetch-registry: false
    service-url:
      #eureka 提供服務發現的地址
      defaultZone: http://localhost:8761/eureka

3.2.5 執行EurekaApplication