java - 云配置收到请求执行错误。端点=默认端点{ serviceUrl='http ://localhost:8761/} from Eureka server

标签 java docker microservices netflix-eureka

我正在尝试为我的 4 个微服务实现 Discovery First Bootstrap 方式。第一个是从 git 获取配置的配置服务器,第二个是 Eureka 服务器。当我运行 docker-compose up 时,我的配置服务器无法注册 eureka。我有:

请求执行错误。端点=默认端点{ serviceUrl=' http://localhost:8761/ } 拒绝连接

我的配置服务器

 @EnableConfigServer
    @EnableEurekaClient
    @SpringBootApplication
    public class ConfigServerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConfigServerApplication.class, args);
        }

应用程序.yml
   server:
  port: 8888
spring:
  cloud:
    config:
      server:
        encrypt.enabled: false
        git:
          uri: https://github.com/Artuwok/artbook-config-repo/
          searchPaths: userservice
          username: Artuwok
          password: Civilization1986
          timeout: 10
          force-pull: true

bootstrap .yml
spring:
  application:
    name: configserver
  cloud:
    config:
      fail-fast: true
      discovery.enabled: true

eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl.defaultZone: http://localhost:8761/eureka/

Eureka 级
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

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

Eureka bootstrap .yml
server:
  port: 8761
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false

具有完整配置的 docker-compose.yml
version: '3'

services:

  configserver:
    image: configserver:1.0
    ports:
      - "8888:8888"
    depends_on:
      - eurekaserver
    restart: on-failure

  eurekaserver:
    image: eurekasvr:1.0
    ports:
      - "8761:8761"


  users_db:
    image: mysql:5.7
    container_name: users_db
    restart: always
    environment:
      - MYSQL_DATABASE=artbook
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
    volumes:
      - users_db:/var/lib/mysql
    ports:
      - "3306:3306"
    depends_on:
      - eurekaserver

  user-service:
    image: userservice:1.0
    ports:
      - "8080:8080"
    depends_on:
      - eurekaserver
      - configserver
    restart: on-failure
volumes:
  users_db:

所以最后我能够启动服务。非常注意您正在发现服务的 URL。 如果您使用 docker 图像,则必须在 uri 和 urls 中使用服务名称,而不是 localhost。 我的工作配置
spring:
  application:
    name: configserver
  cloud:
    config:
      fail-fast: false
      discovery.enabled: false
      uri: http://configserver:8888

eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl.defaultZone: http://eurekaserver:8761/eureka

最佳答案

您的配置服务器和 Eureka 服务器都在 Docker 中运行。所以他们可以在 Docker 中使用他们的名字相互连接,而不是 localhost .

所以 Eureka 服务 URL 应该是:http://eurekaserver:8761/ .

您应该将以下代码添加到您的 configserver docker-compose.yml 中的配置:

links:
    - eurekaserver

关于java - 云配置收到请求执行错误。端点=默认端点{ serviceUrl='http ://localhost:8761/} from Eureka server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55336558/

相关文章:

java - 将 Long[] 转换为 long[]

python - docker.from_env()返回FileNotFoundError:[Errno 2]没有这样的文件或目录

docker - 无法在 Windows 中监听 Clickhouse (Docker) 的 8123 端口

c# - MassTransit 在 RabbitMQ 关闭时尝试无限连接

amazon-web-services - Spring Boot应用程序无法从任何凭证链中找到aws凭证

java - 在作家阅读器中使用信号灯

java - 如何交错(合并)两个 Java 8 Stream?

Kubernetes:单 POD 多容器,或多 Pod 单容器

java - Eclipse 中的 icepdf-core maven 安装不起作用

docker-compose up --build 在入口点的 chown 挂起,没有错误。如何解决?