如何解决无法从另一个容器化的.Net核心RabbitMQ客户端连接到RabbitMQ服务器
我已经能够设置容器化RabbitMQ服务器,并使用基本的.NET Core客户端访问它,并使用http:// localhost:15672 /上的管理门户检查消息的发送和接收工作。
但是,当我同时对发送方/接收方.NET Core客户端进行容器化时,我感到非常沮丧,因为他们能够建立连接。我已经建立了一个显式的“ shipnetwork”,因此以下docker-compose部署中的所有容器都应该互相看到。
这是我在尝试连接的发件人中遇到的错误:
我的SendRabbit .NET核心应用程序如下。这段代码在我的本地Windows 10开发机器上运行,主机“ localhost”针对作为容器运行的RabbitMQ服务器。但是,当我将其更改为[linux] docker项目并将主机设置为“ rabbitmq”时,与docker compose中的服务名称相对应。现在,我的发件人容器中出现了Endpoint Connection错误异常。
我还尝试在Google Cloud Linux虚拟机上尝试使用相同的docker-compose进行相同的RabbitMQ服务器和发件人图像,并得到相同的错误。因此,我认为这不是Windows 10 Docker托管VM环境的麻烦。
我以为Docker将会进行微服务的开发和部署,但是事实证明,建立一个基本的RabbitMQ连接确实很痛苦。
我曾经认为Rabbitmq服务器可能没有启动并正在运行,所以也许雄心勃勃地放入相同的docker-compose。但是我已经检查过运行我的SendRabbit容器 $ docker run --network shipnetwork sendrabbit 几分钟后。但是我仍然遇到相同的连接错误
解决方法
码头工人网络****网络!
当我检查实际的docker网络时,我有:
桥
主持人
船网
rabbitship_shipnetwork
码头工人实际上是在创建“新”网络:rabbitship_shipnetwork每次旋转时,都将rabbimq服务器放置在该网络上。 netwrok是通过在目录名称后加上compsos yaml中的名称来命名的。因此我在发件人中使用了错误的网络。所以我应该一直使用
$ docker run --network rabbitship_shipnetwork sendrabbit
这可以正常工作,并在Rabbitmq服务器中创建消息
所以我觉得docker-compose实际上对创建网络没有太大帮助,因为它对运行它的目录名称敏感!我不太可能构建一个应用程序.docker文件,并从一个目录中部署所有应用程序,尤其是当必须在发送者和接收者可以使用Rabbitmq之前分别启动rabbitmq时。
docker-compose 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。