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

Spring Boot微服务无法连接到Axon服务器

罗昱
2023-03-14

我有一个Spring Boot微服务项目,用三个微服务来测试分布式事务管理的saga模式。

当我使用java-jar axonserver在本地运行Axon服务器时。jar</code>和带有<code>mvn的spring boot微服务spring boot:运行</code>,一切正常,我可以在Axon Server仪表板中看到所有微服务。

我已经将用于微服务的Docker文件和docker-compose.yml添加到项目中,以使用docker-compose运行整个项目。这是我的docker-compose.yml文件:

version: '3.8'

services:
  axonserver:
    image: axoniq/axonserver
    hostname: axonserver
    container_name: axonserver
    volumes:
      - type: bind
        source: ./data
        target: /data
      - type: bind
        source: ./events
        target: /eventdata
      - type: bind
        source: ./config
        target: /config
        read_only: true
    ports:
      - '8024:8024'
      - '8124:8124'
      - '8224:8224'
    networks:
      - axon-demo      

  order-service:
    container_name: "order-service"
    build:
      context: ./order-service
    ports:
      - "8080:8080"
    depends_on:
      - axonserver
    networks:
      - axon-demo      

  payment-service:
    container_name: "payment-service"
    build:
      context: ./payment-service
    ports:
      - "8081:8081"
    depends_on:
      - axonserver
    networks:
      - axon-demo      

  shipping-service:
    container_name: "shipping-service"
    build:
      context: ./shipping-service
    ports:
      - "8082:8082"
    depends_on:
      - axonserver
    networks:
      - axon-demo      

networks:
  axon-demo:
    driver: bridge 

我还将 axon-server 添加到所有微服务的属性中,如下所示:

axon.axonserver.servers=axonserver:8124

运行< code > docker-compose up-build 命令后,微服务无法连接到Axon服务器,我收到了以下错误:

order-service       | 2021-07-10 15:01:01.199  WARN 1 --- [rverConnector-0] o.a.a.c.AxonServerConnectionManager      : Connecting to AxonServer node localhost:8124 failed: UNAVAILABLE: io exception

我的问题是为什么微服务在localhost:8124中寻找axon服务器,这显然是错误的,并且违反了它们在application.properties中的配置:

axon.axonserver.servers=axonserver:8124

这里的轴突服务器是轴子服务器的容器名称。

共有2个答案

胡弘毅
2023-03-14

属性文件包含以下内容:

axon.axonserver.servers=${AXONSERVER_HOST:axonserver:8124}

请在没有“:8124”的情况下尝试:

axon.axonserver.servers=${AXONSERVER_HOST:axonserver}

我觉得Spring boot被双“:”搞糊涂了。端口8124是Axon服务器连接的默认端口,因此您可以省去它,不会有任何问题。

陈阳舒
2023-03-14

如注释中所述,问题出在您的Dockerfile上,您正在覆盖spring.config.location。通过从Dockerfile中删除它,问题应该得到修复。

 类似资料:
  • 我有发现服务:https://github.com/Naresh-Chaurasia/API-MicroServices-Kafka/tree/master/Microservices-CQRS-SAGA-Kafka/DiscoveryService 我有产品服务:https://github.com/Naresh-Chaurasia/API-MicroServices-Kafka/tree/ma

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

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

  • 我正在尝试连接两个docker容器,一个是posgresql,另一个是python flask应用程序。两者都链接正确,python应用程序中的所有连接变量都直接取自postgres容器中通过链接公开的连接变量,并且与检查postgresql容器时发现的连接变量相同。当我将psql与连接字符串中的精确参数一起使用时,即: 成功连接到postgres容器中的数据库,因此我知道postgres正在通过

  • 我在设置打开班次时遇到问题,并在连接到我的服务器域后收到以下错误: 我不确定这是在告诉我做什么。我尝试按字面意思使用指令,但它无法识别命令。 有什么想法吗?

  • 问题内容: 我不确定如何解决此问题 我不知道为什么在尝试以下操作时会出现此错误: 当我尝试连接到postgres时: 问题答案: 可能是一些问题: PostgreSQL没有运行。用sudo检查 你的PostgresSQl不在端口5432上运行。你可以检查其键入 尝试连接到数据库时出现错误,例如用户名,密码或数据库名。检查它们是否是postgres要求你连接的对象,并且这是你要访问的db_name。