【问题标题】:Microservice not able to connect to AXON Server running as docker image微服务无法连接到作为 docker 镜像运行的 AXON 服务器
【发布时间】:2021-10-21 16:16:36
【问题描述】:

我有发现服务:https://github.com/Naresh-Chaurasia/API-MicroServices-Kafka/tree/master/Microservices-CQRS-SAGA-Kafka/DiscoveryService

我有产品服务:https://github.com/Naresh-Chaurasia/API-MicroServices-Kafka/tree/master/Microservices-CQRS-SAGA-Kafka/ProductsService

以下是我的 docker-compose.yml 文件:https://github.com/Naresh-Chaurasia/API-MicroServices-Kafka/tree/master/Microservices-CQRS-SAGA-Kafka/docker-compose.yml

version: "3.8"

services:

  axon-server:
    image: axoniq/axonserver
    container_name: axon-server
    ports:
      - 8124:8124
      - 8024:8024
    networks:
      - axon-demo

  discovery-service:
    build:
      context: ./DiscoveryService
    container_name: discovery-service
    ports:
      - 8010:8010
    networks:
      - axon-demo

networks:
  axon-demo:
    driver: bridge

当我运行以下命令 docker-compose up 时,axon-serverdiscovery-service 正在运行。

我现在使用位于https://github.com/Naresh-Chaurasia/API-MicroServices-Kafka/tree/master/Microservices-CQRS-SAGA-Kafka/ProductsService 下的以下文件src/main/java/com/appsdeveloperblog/estore/ProductsService/ProductsServiceApplication.java 运行ProductService。

效果很好。

当我尝试将 ProductService 作为微服务运行时,问题就开始了,但它无法连接到 axon 服务器。为此,我将 docker-compose.yml 修改如下:

version: "3.8"

services:

  axon-server:
    image: axoniq/axonserver
    container_name: axon-server
    ports:
      - 8124:8124
      - 8024:8024
    networks:
      - axon-demo

  discovery-service:
    build:
      context: ./DiscoveryService
    container_name: discovery-service
    ports:
      - 8010:8010
    networks:
      - axon-demo

  product-service:
    build:
      context: ./ProductsService
    ports:
      - 8090:8090
    depends_on:
      - axon-server
      - discovery-service
    networks:
      - axon-demo

networks:
  axon-demo:
    driver: bridge

现在如果我尝试运行docker-compose up,我会收到以下错误:

product-service_1    | 2021-08-20 03:06:27.973  INFO 1 --- [@29db04f6c0a4-0] i.a.a.c.impl.AxonServerManagedChannel    : Requesting connection details from localhost:8124
product-service_1    | 2021-08-20 03:06:30.004  WARN 1 --- [@29db04f6c0a4-0] i.a.a.c.impl.AxonServerManagedChannel    : Connecting to AxonServer node [localhost:8124] failed: UNAVAILABLE: io exception

我已经浏览了以下链接,Spring Boot Microservices are unable to connect to Axon Server,看起来类似的问题,但仍然无法解决我的问题。

请指导。

谢谢。

【问题讨论】:

  • 它清楚地显示INFO ...这不是错误。
  • 产品服务_1 | 2021-08-20 03:06:30.004 WARN 1 --- [@29db04f6c0a4-0] i.a.a.c.impl.AxonServerManagedChannel:连接到 AxonServer 节点 [localhost:8124] 失败:不可用:io 异常
  • 你在使用extension-springcloud吗?您想同时使用Axon ServerEureka 来实现什么目标?仅使用 Axon 服务器就足够了,您的应用程序应该可以很好地连接到该服务器,而无需 Eureka
  • @LucasCampos 我已经实现了 SAGA 模式。 API 网关和负载均衡背后有多个微服务,这就是我使用 Eureka 的原因。我在原始问题中没有提到这些细节,因为它不相关,但是如果您查看 GitHub 中的不同文件夹,您会看到更多服务。实际上,我已经使用 Apache Kafka 使用 Spring Boot 微服务 + 事件流实现了 SAGA 模式。我正在尝试将所有服务和相关组件容器化。希望已经回答了您的问题。

标签: spring-boot docker docker-compose axon


【解决方案1】:

我做了以下更改,现在可以正常工作了。

在文件ProductsService\src\main\resources\application.properties

旧条目:eureka.client.serviceUrl.defaultZone = http://localhost:8010/eureka

新条目:eureka.client.serviceUrl.defaultZone = http://discovery-service:8010/eureka

在上述文件中添加以下行:axon.axonserver.servers=axon-server:8124

在文件中:Microservices-CQRS-SAGA-Kafka\docker-compose.yml

旧条目:版本:“3.8”

新条目:版本:“2”

在 yml 文件中添加以下代码

   product-service:
    build:
      context: ./ProductsService
    ports:
      - 8090:8090
    networks:
      - axon-demo

我还签入了 git 中的代码。微服务可以相互通信,并连接到axon服务器,之前报告的问题得到解决。

谢谢。

【讨论】:

    【解决方案2】:

    只是一个想法。 尝试在application.properties中添加每个服务

    axon.axonserver.servers=localhost:8124
    

    以及连接到 docker-compose.yml 中的 axon-server 的每个服务 在环境变量部分

    axon-server:
        image: axoniq/axonserver
        container_name: axon-server
        ports:
          - 8124:8124
          - 8024:8024
    
    product-service:
        ...
        environment:
          AXON_AXONSERVER_SERVERS: axon:8124
    

    【讨论】:

      猜你喜欢
      • 2019-10-08
      • 2021-09-20
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      相关资源
      最近更新 更多