Spring Cloud 服务注册与发现项目创建(Greenwich SR3版)

Spring Cloud 服务注册与发现项目创建(Greenwich SR3版)文章目录 1 创建项目 1 1 创建父项目 spring cloud1 2 创建子模块 eureka server 和 eureka client1 3 创建后的项目结构图 2 配置服务注册中心 eureka server2 1EurekaServe java2 2application yml2 3pom xml3 配置服务发现 eureka client3 1Eureka

1. 创建项目

1.1 创建父项目spring-cloud

1.2 创建子模块eureka-server 和eureka-client

    创建两个子模块项目,Spring Initializr Module,服务注册与服务发现。

1.3 创建后的项目结构图

Spring Cloud 服务注册与发现项目创建(Greenwich SR3版)

2. 配置服务注册中心eureka-server

2.1 EurekaServerApplication.java

    启动类添加注解@EnableEurekaServer 声明为服务注册中心。

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { 
    public static void main(String[] args) { 
    SpringApplication.run(EurekaServerApplication.class, args); } } 

2.2 application.yml

  • eureka.instance.hostname
         主机IP,访问实例时需要通过主机IP+端口号访问,主机名+端口号访问不到

  • fetch-registry
        检索服务选项,当设置为True(默认值)时,会进行服务检索,注册中心不负责检索服务。

  • register-with-eureka
        服务注册中心也会将自己作为客户端来尝试注册自己,为true(默认)时自动生效

  • eureka.client.serviceUrl.defaultZone
        是一个默认的注册中心地址。配置该选项后,可以在服务中心进行注册。

server: port: 8761 eureka: instance: hostname: 192.168.15.1 client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://${ 
   eureka.instance.hostname}:${ 
   server.port}/eureka/ 

2.3 pom.xml

    添加依赖spring-cloud-starter-netflix-eureka-server

 
    <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0 
     modelVersion> <parent> <groupId>org.springframework.boot 
      groupId> <artifactId>spring-boot-starter-parent 
       artifactId> <version>2.1.9.RELEASE 
        version> <relativePath/>  
         
         parent> <groupId>pers.niaonao 
          groupId> <artifactId>eureka-server 
           artifactId> <version>0.0.1-SNAPSHOT 
            version> <name>eureka-server 
             name> <description>Demo project for Spring Boot 
              description> <properties> <java.version>1.8 
               java.version> <spring-cloud.version>Greenwich.SR3 
                spring-cloud.version>  
                 properties> <dependencies> <dependency> <groupId>org.springframework.cloud 
                  groupId> <artifactId>spring-cloud-starter-netflix-eureka-server 
                   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> 

3 配置服务发现eureka-client

3.1 EurekaClientApplication.java

    启动类添加注解@EnableEurekaClient 声明为服务发现。

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); } } 

3.2 application.yml

server: port: 8080 spring: application: name: eureka-client eureka: client: serviceUrl: defaultZone: http://192.168.15.1:8761/eureka/ 

3.3 pom.xml

 
    <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0 
     modelVersion> <parent> <groupId>org.springframework.boot 
      groupId> <artifactId>spring-boot-starter-parent 
       artifactId> <version>2.1.9.RELEASE 
        version> <relativePath/>  
         
         parent> <groupId>pers.niaonao 
          groupId> <artifactId>eureka-client 
           artifactId> <version>0.0.1-SNAPSHOT 
            version> <name>eureka-client 
             name> <description>Demo project for Spring Boot 
              description> <properties> <java.version>1.8 
               java.version> <spring-cloud.version>Greenwich.SR3 
                spring-cloud.version>  
                 properties> <dependencies> <dependency> <groupId>org.springframework.cloud 
                  groupId> <artifactId>spring-cloud-starter-netflix-eureka-client 
                   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> 

4. 运行服务

5. 遇见问题

5.1 Completed shut down of DiscoveryClient

Spring Cloud 服务注册与发现项目创建(Greenwich SR3版)

    启动eureka-client 报Completed shut down of DiscoveryClient,可以通过在eureka-client 添加pring-boot-starter-web 依赖后重启服务处理。另外没有web 依赖,怎么进行后续的服务开发。

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

5.2 红色提示信息EMERGENCY!

Spring Cloud 服务注册与发现项目创建(Greenwich SR3版)

  • 方式一:如果开启自动注册,可以部署两个server,相互注册
  • 方式二:在本机器上测试的时候,可以把比值调低,低于缺省值0.85 的一个恰当值即可
  • 方式三:或者关闭自我保护模式即可

eureka.server.enableSelfPreservation=false

THE END

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223843.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:19
下一篇 2026年3月17日 下午1:19


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号