我有一个Flask应用程序,一个Celery worker和一个在docker容器中运行的RabbitMQ队列。 Flask和Celery worker在我的IDE中本地运行。
我使用docker-compose设置RabbitMQ:
version: '3'
services:
rabbitmq:
hostname: rabbitmq
image: 'rabbitmq:latest'
ports:
- '4369:4369'
- '5672:5672'
- '5671:5671'
- '15672:15672'
- '25672:25672'
environment:
- RABBITMQ_DEFAULT_USER=myuser
- RABBITMQ_DEFAULT_PASS=mypassword
expose:
- 5671
- 4369
- 5672
并且我将celery_broker_url传递为“ amqp:// myuser:mypassword@127.0.0.1:5672 //”给Celery。
RabbitMQ已启动并说“在[::]:5672上启动了TCP侦听器”,但是当我尝试运行我的worker时,它会失败并出现异常
amqp.exceptions.AccessRefused:(0,0):(403)ACCESS_REFUSED-使用身份验证机制AMQPLAIN拒绝登录。有关详细信息,请参阅代理日志文件。
兔子正在将日志写入标准输出,并且在尝试引导我的工作程序时没有出现任何新行。看来兔子没有从我的工人那里尝试连接?但是为什么是403,而不是404或500?
对于任何可能发生这种情况以及如何解决此问题的想法,我将不胜感激。