【发布时间】:2019-05-28 20:25:43
【问题描述】:
更新: 事实证明,rabbitmq 使用的端口不是 15672。我在 ConnectionFactory 块中将端口号从 15672 更改为 5672,并成功连接。
我一直在尝试设计一个简单的微服务架构来尝试和学习 docker & rabbitmq。所以我编写了这些 docker-compose.yml 文件,如下所示:
version: '3.4'
networks:
customqueue:
services:
feed.api:
image: feed.api:${TAG:-latest}
build:
context: .
dockerfile: src/Services/Feed/Feed.Api/Dockerfile
depends_on:
- sqldata
- rabbitmq
ports:
- "8000:80"
networks:
- customqueue
like.api:
image: like.api:${TAG:-latest}
build:
context: .
dockerfile: src/Services/Like/Like.Api/Dockerfile
depends_on:
- rabbitmq
ports:
- "7000:70"
networks:
- customqueue
rabbitmq:
image: rabbitmq:3-management-alpine
environment:
RABBITMQ_DEFAULT_USER: "admin"
RABBITMQ_DEFAULT_PASS: "password"
ports:
- "15672:15672"
- "5672:5672"
networks:
- customqueue
feed.api 设计为订阅者,like.api 设计为发布者。但是,当我尝试运行 feed.api 的 .net 核心代码时,我在使用 RabbitMQ 时遇到了“所有端点都无法访问”的错误。容器上的 RabbitMQ 工作正常。我正在尝试在 Feed.Api 项目中的 Startup.cs 上定义如下 ConnectionFactory。
var factory = new ConnectionFactory()
{
HostName = "rabbitmq",
UserName = "admin",
Password = "password",
Port = 15672,
Protocol = Protocols.DefaultProtocol,
RequestedConnectionTimeout = 2000,
VirtualHost = "/",
};
注意:
“admin”用户是管理员。
rabbitmq-management 插件已启用。
编辑:rabbimq:3-managament-alpine 显然是一个旧图像。将此更新到最新版本可能会有所帮助,但我不确定。有人知道吗?
【问题讨论】:
标签: .net docker .net-core docker-compose rabbitmq