当前位置: 首页 > 知识库问答 >
问题:

Spring Cloud Netflix和Docker Compose-无法在eureka注册服务

夏侯旻
2023-03-14

我正在尝试使用docker-compose在本地(Ubuntu)运行两个简单的服务:一个eureka服务器和一个config服务器(它也是一个eureka客户机)。这两个文件都有简单的dockerfiles,运行java-jar,公开它们的端口,并且单独运行良好。我还尝试添加eureka.client.service-url.defaultzone=http://company-service-discovery:8761/eureka来查看它是否会注册自己,结果成功了。

我的配置服务器无法成功注册到eureka服务器,我搜索了它,但没有看到任何帮助我解决这个问题的东西。

通过以下示例,Web应该能够使用postgres:/db:5432与数据库通信。

version: "3"
services:
  web:
    build: .
    ports:
      - "8000:8000"
  db:
    image: postgres
    ports:
      - "8001:5432"

我使用了相同的方法来配置我的服务,但是我的配置服务器在尝试注册时连接被拒绝:

version: '3.3'
services:
  company-service-discovery:
    build: company-service-discovery/
    ports:
      - "8761:8761"
  company-config-server:
    build: company-config-server/
    ports:
      - "8888:8888"
    links:
      - company-service-discovery
server:
  port: 8888

management:
  security:
    enabled: false

spring:
  application:
    name: company-config-server
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/shared
  profiles:
    include: native

eureka:
  client:
    service-url:
      defaultZone: http://company-service-discovery:8761/eureka
spring:
  application:
    name: company-service-discovery

server:
  port: 8761

management:
  security:
    enabled: false
2017-07-26 14:25:05.738  WARN 1 --- [nfoReplicator-0] c.n.d.s.t.d.RetryableEurekaHttpClient    : Request execution failed with message: java.net.ConnectException: Connection refused (Connection refused)
2017-07-26 14:25:05.739  WARN 1 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_COMPANY-CONFIG-SERVER/365d20275ab0:company-config-server:8888 - registration failed Cannot execute request on any known server

我的配置有什么问题吗?我怎么才能让它工作呢?

共有1个答案

上官和韵
2023-03-14

defaultzone配置也添加到Eureka服务器的属性中(并将配置服务器bootstrap.yml中的service-url更改为serviceURL)。

spring:
  application:
    name: company-service-discovery

eureka:
  client:
    serviceUrl:
      defaultZone: http://company-service-discovery:8761/eureka

server:
  port: 8761

management:
  security:
    enabled: false
 类似资料:
  • 我刚刚关注了下面这篇文章,https://spring.io/blog/2015/07/14/microservices-with-spring,但是我无法在尤里卡注册我的微服务。 customer-service.yml build . gradle for customer-service CustomerService.java 注册-server.yml

  • 在本章中,您将详细了解如何将Spring Boot Micro服务应用程序注册到Eureka Server中。 在注册应用程序之前,请确保Eureka Server在端口8761上运行或首先构建Eureka Server并运行它。 有关构建Eureka服务器的更多信息,请参阅上一章。 首先,您需要在我们的构建配置文件中添加以下依赖项,以便向Eureka服务器注册微服务。 Maven用户可以将以下依

  • creds application.yml服务器:端口:9000 Eureka:Client:ServiceUrl:DefaultZone:http://localhost:8761/Eureka/ 发现application.yml

  • 我使用SpringBoot、SpringCloudNetfix和docker来运行微服务。 在非停靠环境中一切正常,但一旦我停靠了eureka服务器和microservice(例如用户服务),我发现用户服务无法注册到eureka服务器。 我可以通过http://{Ubuntu server}:8761/eureka/访问停靠的eureka服务器,或者通过http://{Ubuntu server}

  • 我有一个工作中的Eureka注册表,其中注册了许多Spring-Boot应用程序。我知道这是有效的,因为他们能够找到对方,并通过尤里卡注册中心进行交流。 当我启动我的新SBA应用程序时,我可以看到它自己在Eureka注册表中注册,所以它正在查找Eureka。然而,当我打开SBA UI时,它是空的,只是说“没有应用程序注册。”在我的控制台上,我可以一遍又一遍地看到下面的堆栈跟踪。