Spring / RabbitMQ教程的Docker映像导致连接被拒绝

我在这里浏览Spring教程。

使用RabbitMQ进行消息传递

我找到了这个问题,但没有解决我对docker-compose.yml本教程中找到的文件的查询;

在完成应用程序的实际运行之前,我已经完成了所有必要的步骤,这时我遇到了一些ConnectException异常,表明服务器未在运行或未正确运行。

本教程中指定的docker-compose.yml文件如下:

rabbitmq:

image: rabbitmq:management

ports:

- "5672:5672"

- "15672:15672"

基本上,我不确定这个docker-

compose文件的实际作用,因为它似乎没有按照教程的建议设置RabbitMQ服务器(或者至少不是按照教程的预期设置)。我对Docker还是一个新手,所以也许我误以为该文件将运行RabbitMQ服务器的新实例。

运行时,docker-compose up我得到以下控制台输出;

rabbitmq_1  |

rabbitmq_1 | =INFO REPORT==== 28-Jun-2017::13:27:26 ===

rabbitmq_1 | Starting RabbitMQ 3.6.10 on Erlang 20.0-rc2

rabbitmq_1 | Copyright (C) 2007-2017 Pivotal Software, Inc.

rabbitmq_1 | Licensed under the MPL. See http://www.rabbitmq.com/

rabbitmq_1 |

rabbitmq_1 | RabbitMQ 3.6.10. Copyright (C) 2007-2017 Pivotal Software, Inc.

rabbitmq_1 | ## ## Licensed under the MPL. See http://www.rabbitmq.com/

rabbitmq_1 | ## ##

rabbitmq_1 | ########## Logs: tty

rabbitmq_1 | ###### ## tty

rabbitmq_1 | ##########

rabbitmq_1 | Starting broker...

rabbitmq_1 |

rabbitmq_1 | =INFO REPORT==== 28-Jun-2017::13:27:26 ===

rabbitmq_1 | node : rabbit@bd20dc3d3d2a

rabbitmq_1 | home dir : /var/lib/rabbitmq

rabbitmq_1 | config file(s) : /etc/rabbitmq/rabbitmq.config

rabbitmq_1 | cookie hash : DTVsmjdKvD5KtH0o/OLVJA==

rabbitmq_1 | log : tty

rabbitmq_1 | sasl log : tty

rabbitmq_1 | database dir : /var/lib/rabbitmq/mnesia/rabbit@bd20dc3d3d2a

…加上大量的INFO报告。这使我相信RabbitMQ服务器已启动并正在运行,但是显然不能,因为我无法连接。

使它起作用的唯一方法是手动安装Erlang和RabbitMQ(在此处的Windows系统上),这似乎可以使我完成本教程。

为什么在本教程中甚至提到了Docker?在docker-compose.yml不出现做教程提出什么。

该文件在这里实际上是做什么的?就本教程而言,如何在docker容器中运行RabbitMQ?这是端口号的问题吗?

回答:

事实证明,问题出在Spring RabbitMQ模板连接信息。

Spring教程假定使用RabbitMQ(加上Erlang)的常规手动安装,并且RabbitMQ Spring模板使用一些与docker-

compose教程中指定的文件中的映像不兼容的默认连接参数。

为了解决这个问题,我需要添加一个Spring

application.properties文件并将其添加到resources我的应用程序目录结构中的文件夹中。接下来,我需要使用以下命令找到我的Docker容器的IP地址;

docker-machine ip

这将给出IP地址。我在application.properties文件中添加了以下参数;

spring.rabbitmq.host={docker-machine ip address}

spring.rabbitmq.port=5672

spring.rabbitmq.username=guest

spring.rabbitmq.password=guest

这里的端口,用户名和密码都是默认值,可以在RabbitMQ文档中找到。

这样做,我能够使我的应用程序正确连接到在Docker容器中运行的RabbitMQ服务器。

Spring教程似乎有些不完整,因为它没有通知读者在使用docker-compose本教程其余部分假定的RabbitMQ手动安装时使用RabbitMQ

文件时需要一些额外的步骤。

以上是 Spring / RabbitMQ教程的Docker映像导致连接被拒绝 的全部内容, 来源链接: utcz.com/qa/428518.html

回到顶部