zoukankan      html  css  js  c++  java
  • Spring Boost Eureka服务注册

    在本章中,将详细了解如何将Spring Boot Micro服务应用程序注册到Eureka Server中。 在注册应用程序之前,请确保Eureka Server在端口8761上运行或首先构建Eureka Server并运行它。有关构建Eureka服务器的更多信息,请参阅上一章(https://www.yiibai.com/spring-boot/spring_boot_eureka_server.html )。

    首先,需要在构建配置文件中添加以下依赖项,以便向Eureka服务器注册微服务。

    Maven用户可以将以下依赖项添加到pom.xml 文件中 -

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

    Gradle用户可以将以下依赖项添加到build.gradle 文件中 -

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

    现在,在主Spring Boot应用程序类文件中添加@EnableEurekaClient注解。 @EnableEurekaClient注解用于指示Spring Boot应用程序充当Eureka客户端。

    Spring Boot主应用程序如下所示 -

    package com.yiibai.eurekaclient;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    @SpringBootApplication
    @EnableEurekaClient
    public class EurekaclientApplication {
       public static void main(String[] args) {
          SpringApplication.run(EurekaclientApplication.class, args);
       }
    }
    
    Java

    要将Spring Boot应用程序注册到Eureka Server,需要在application.properties 文件或application.yml 文件中添加以下配置,并在配置中指定Eureka Server URL。

    application.yml 文件的代码如下 -

    eureka:
       client:
          serviceUrl:
             defaultZone: http://localhost:8761/eureka
          instance:
          preferIpAddress: true
    spring:
       application:
          name: eurekaclient
    
    YAML

    application.properties 文件的代码如下 -

    eureka.client.serviceUrl.defaultZone  = http://localhost:8761/eureka
    eureka.client.instance.preferIpAddress = true
    spring.application.name = eurekaclient
    

    现在,添加Rest Endpoint以在Spring Boot应用程序中返回String,并在构建配置文件中返回Spring Boot Starter Web依赖项。如下给出的代码 -

    package com.yiibai.eurekaclient;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @EnableEurekaClient
    @RestController
    public class EurekaclientApplication {
       public static void main(String[] args) {
          SpringApplication.run(EurekaclientApplication.class, args);
       }
       @RequestMapping(value = "/")
       public String home() {
          return "Eureka Client application";
       }
    }
    
    Java

    整个配置文件如下。

    Maven构建文件 - pom.xml 的内容如下:

    <?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.yiibai</groupId>
       <artifactId>eurekaclient</artifactId>
       <version>0.0.1-SNAPSHOT</version>
       <packaging>jar</packaging>
    
       <name>eurekaclient</name>
       <description>Demo project for Spring Boot</description>
    
       <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>1.5.9.RELEASE</version>
          <relativePath/> <!-- lookup parent from repository -->
       </parent>
    
       <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
          <java.version>1.8</java.version>
          <spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
       </properties>
    
       <dependencies>
          <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-eureka</artifactId>
          </dependency>
          <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
          <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
          </dependency>
       </dependencies>
    
       <dependencyManagement>
          <dependencies>
             <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
             </dependency>
          </dependencies>
       </dependencyManagement>
    
       <build>
          <plugins>
             <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
          </plugins>   
       </build>
    
    </project>
    
    XML

    对于Gradle用户,构建文件 - build.gradle 的内容如下:

    buildscript {
       ext {
          springBootVersion = '1.5.9.RELEASE'
       }
       repositories {
          mavenCentral()
       }
       dependencies {
          classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
       }
    }
    
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'org.springframework.boot'
    
    group = 'com.yiibai'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = 1.8
    
    repositories {
       mavenCentral()
    }
    ext {
       springCloudVersion = 'Edgware.RELEASE'
    }
    dependencies {
       compile('org.springframework.cloud:spring-cloud-starter-eureka')
       testCompile('org.springframework.boot:spring-boot-starter-test')
       compile('org.springframework.boot:spring-boot-starter-web')   
    }
    dependencyManagement {
       imports {
          mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
       }
    }
    

    创建可执行的JAR文件,并使用以下Maven或Gradle命令运行Spring Boot应用程序。

    对于Maven,可以使用以下命令 -

    mvn clean install
    
    Shell

    “BUILD SUCCESS” 之后,在target目录下找到JAR文件。

    对于Gradle,可以使用以下命令 -

    gradle clean build
    
    Shell

    “BUILD SUCCESSFUL”之后,在build/libs目录下找到JAR文件。

    现在,使用如下所示的命令运行JAR文件 -

    java –jar <JARFILE>
    
    Shell

    现在,应用程序已在Tomcat端口8080上启动,Eureka Client应用程序已在Eureka Server中注册,如下所示 -

    2018-10-05 22:00:53.732  INFO 13968 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry  : Running the evict task with compensationTime 0ms
    2018-10-05 22:01:26.203  INFO 13968 --- [io-8761-exec-10] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
    2018-10-05 22:01:26.206  INFO 13968 --- [io-8761-exec-10] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
    2018-10-05 22:01:26.364  INFO 13968 --- [io-8761-exec-10] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 156 ms
    2018-10-05 22:01:27.549  INFO 13968 --- [nio-8761-exec-8] c.n.e.registry.AbstractInstanceRegistry  : Registered instance EUREKACLIENT/windows10.microdone.cn:eurekaclient with status UP (replication=false)
    2018-10-05 22:01:28.244  INFO 13968 --- [nio-8761-exec-9] c.n.e.registry.AbstractInstanceRegistry  : Registered instance EUREKACLIENT/windows10.microdone.cn:eurekaclient with status UP (replication=true)
    
    Shell

    在Web浏览器访问URL => http://localhost:8761/ ,看到Eureka Client应用程序已在Eureka Server中注册。

    现在,在Web浏览器访问URL => http://localhost:8080/ ,然后查看Rest端点的输出。

  • 相关阅读:
    安装minicom串口访问开发板
    《Linux运维趋势》2010-2013年全部期刊下载
    pap与chap协议
    简单linux网络驱动程序
    573. Squirrel Simulation
    576. Out of Boundary Paths
    568. Maximum Vacation Days
    leetcode contest 20
    55 Jump Game i && 45 Jump Game ii
    120. Triangle
  • 原文地址:https://www.cnblogs.com/borter/p/12423820.html
Copyright © 2011-2022 走看看