首页 > 解决方案 > 尤里卡服务器没有发现服务

问题描述

我刚刚开始通过 Spring Cloud 学习微服务,并开始尝试重现这篇文章https://spring.io/blog/2015/07/14/microservices-with-spring中的基本示例。这是我的代码:

尤里卡服务器

@SpringBootApplication
@EnableEurekaServer
public class ServiceRegistryApplication {

  public static void main(String[] args) {
      System.setProperty("spring.config.name", "registration-server");
      SpringApplication.run(ServiceRegistryApplication.class, args);
  }
}

资源/注册-server.yml:

# Configure this Discovery Server
eureka:
  instance:
    hostname: localhost
  client:  # Not a client, don't register with yourself (unless running
           # multiple discovery servers for redundancy)
    registerWithEureka: false
    fetchRegistry: false

server:
  port: 1111   # HTTP (Tomcat) port

样品服务:

@SpringBootApplication
@EnableDiscoveryClient
public class AccountsServiceApplication {

  public static void main(String[] args) {
      System.setProperty("spring.config.name", "accounts-server");
      SpringApplication.run(AccountsServiceApplication.class, args);
  }
}

帐户-service.yml:

# Spring properties
spring:
  application:
     name: accounts-service

# Discovery Server Access
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:1111/eureka/

# HTTP Server
server:
  port: 2222   # HTTP (Tomcat) port

但是当我运行这两个应用程序并转到 localhost:1111 时,我在应用程序列表中看不到我的服务: 在此处输入图像描述

你能告诉我我做错了什么吗?

编辑

在我应用更改后,出现以下行: 在此处输入图像描述

标签: spring-bootspring-cloud

解决方案


我有一个很好的解决方案给你,而且很简单

请按照以下步骤操作:

1-尤里卡服务器

@SpringBootApplication
@EnableEurekaServer
public class ServiceRegistryApplication {

  public static void main(String[] args) {

      SpringApplication.run(ServiceRegistryApplication.class, args);
  }
}

在 application.properties 中指定这些参数

spring.application.name=eureka-server
server.port=1111

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false 

2- 样品服务

@SpringBootApplication
@EnableDiscoveryClient
public class AccountsServiceApplication {

  public static void main(String[] args) {
      SpringApplication.run(AccountsServiceApplication.class, args);
  }
}

在 application.properties 中指定这些参数

spring.application.name=accounts-service
server.port=2222

eureka.client.service-url.default-zone=http://localhost:1111/eureka

并且不要忘记删除所有 .yml 属性文件。


推荐阅读