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

微服务无法连接到作为 docker 映像运行的 AXON 服务器

白祺然
2023-03-14

我有发现服务: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

当我运行下面的命令<code>docker compose</code>时,我得到axon服务器和发现服务正在运行。

我现在使用下面的文件src/main/java/com/apps的开发博客/estore/OUtsService/ProductsServiceApplication.java运行产品服务,该文件位于https://github.com/Naresh-Chaurasia/API-MicroServices-Kafka/tree/master/Microservices-CQRS-SAGA-Kafka/ProductsService.

它工作得很好。

当我尝试将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

现在,如果我尝试运行<code>docker compose</code>,我会得到以下错误:

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微服务无法连接到Axon服务器,这看起来像类似的问题,但仍然无法解决我的问题。

请指导。

谢谢。

共有2个答案

法镜
2023-03-14

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

axon.axonserver.servers=localhost:8124

以及连接到axon-server的每个服务

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

product-service:
    ...
    environment:
      AXON_AXONSERVER_SERVERS: axon:8124
卢嘉誉
2023-03-14

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

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

旧条目:< code > eureka . client . service URL . default zone = http://localhost:8010/eureka

新条目:<code>eureka.client.serviceUrl。默认区域=http://discovery-service:8010/eureka

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

在文件中:< code > micro services-CQRS-佐贺-Kafka\docker-compose.yml

旧条目:版本:“3.8”

新条目:版本:“2”

在yml文件中添加了以下代码

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

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

谢谢。

 类似资料:
  • 我有一个Spring Boot微服务项目,用三个微服务来测试分布式事务管理的saga模式。 当我使用 命令后,微服务无法连接到Axon服务器,我收到了以下错误: 我的问题是为什么微服务在中寻找axon服务器,这显然是错误的,并且违反了它们在中的配置: 这里的轴子服务器的容器名称。

  • 例外情况是: docker-compose文件是: 多克菲乌勒

  • 我尝试将我的服务(auth-service)连接到service Registry的Eureka服务器。Eureka服务器正在运行,但当我尝试连接身份验证服务时,什么也没有发生。 Eureka服务器的URL:http://localhost:8761/ DS副本:本地主机 启动身份验证服务时的消息: 发现服务pom

  • 我一直在寻找一个解决办法,但没有找到一个有效的解决办法。 我已经在我的MacBook中使用brew安装了postgres(),并且我目前正在使用brew服务运行它(将postgres显示为正在运行的服务)。但是,当我尝试运行时,我得到以下错误。 PSQL:无法连接到服务器:没有这样的文件或目录是本地运行并接受Unix域套接字“/tmp/.s.pgsql.5432”上的连接的服务器吗? 有人已经解决

  • 我使用docker查看了瓶装水的github MD文件,遇到了一个关于postgresql的问题 如果我运行我会得到错误 这是我的docker compose中postgres和psql的配置。yml文件 这是我的pg_hba。配置文件 我已经做了好几天了,任何形式的帮助都将不胜感激!非常感谢。

  • 我正在docker容器中运行sql server` 所有这些都成功完成了。现在,当我尝试使用Java连接到数据库时,我得到了错误。 192.168.56.101是我的虚拟机的ip。我正在虚拟机上运行Linux。 我收到通信链路故障错误。 我在谷歌上搜索并找到了一些关于以下链接的解决方案,但没有一个对我有用。 使用JDBC和MySQL解决“通信链路故障” 如何连接docker中作为容器运行的MySQ