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端点的输出。

  • 相关阅读:
    Codeforces 834D The Bakery
    hdu 1394 Minimum Inversion Number
    Codeforces 837E Vasya's Function
    Codeforces 837D Round Subset
    Codeforces 825E Minimal Labels
    Codeforces 437D The Child and Zoo
    Codeforces 822D My pretty girl Noora
    Codeforces 799D Field expansion
    Codeforces 438D The Child and Sequence
    Codeforces Round #427 (Div. 2) Problem D Palindromic characteristics (Codeforces 835D)
  • 原文地址:https://www.cnblogs.com/borter/p/12423820.html
Copyright © 2011-2022 走看看