簡體   English   中英

與容器上RabbitMQ的連接問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM