【发布时间】:2021-10-21 16:16:36
【问题描述】:
以下是我的 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-server 和 discovery-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 Server和Eureka来实现什么目标?仅使用 Axon 服务器就足够了,您的应用程序应该可以很好地连接到该服务器,而无需Eureka。 -
@LucasCampos 我已经实现了 SAGA 模式。 API 网关和负载均衡背后有多个微服务,这就是我使用 Eureka 的原因。我在原始问题中没有提到这些细节,因为它不相关,但是如果您查看 GitHub 中的不同文件夹,您会看到更多服务。实际上,我已经使用 Apache Kafka 使用 Spring Boot 微服务 + 事件流实现了 SAGA 模式。我正在尝试将所有服务和相关组件容器化。希望已经回答了您的问题。
标签: spring-boot docker docker-compose axon