[英]Problem with connection to RabbitMQ on container
更新:事實證明,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 = "/",
};
注意:
“管理員”用戶是管理員。
rabbitmq-management插件已啟用。
編輯:rabbimq:3-managament-alpine顯然是一張舊照片。 將其更新為最新版本可能會有所幫助,但我不確定。 有人對此有想法嗎?
在api上添加一個links:
部分到Rabbitmq容器,否則它們對“ rabbitmq”主機名一無所知。
鏈接在docker命令中被棄用,但在docker-compose中不被使用。
feed.api:
image: feed.api:${TAG:-latest}
build:
context: .
dockerfile: src/Services/Feed/Feed.Api/Dockerfile
depends_on:
- sqldata
- rabbitmq
links:
- 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"
links:
- rabbitmq
networks:
- customqueue
rabbitmq:
image: rabbitmq:3-management-alpine
environment:
RABBITMQ_DEFAULT_USER: "admin"
RABBITMQ_DEFAULT_PASS: "password"
ports:
- "15672:15672"
- "5672:5672"
networks:
- customqueue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.