朋友,我正在这里练习并开发一个由Web服务和工作人员组成的系统,他们通过RabbitMQ相互通信。我也使用Docker-Compose。一切正常,直到我尝试使用环境变量。 Web服务现在无法连接到Rabbitmq:“拨号tcp 127.0.0.1:5672:connect:连接被拒绝:...”
也许你们可以帮助我找出我所缺少的东西。这是我代码的重要部分。
Golang代码:
func init() {
var err error
url := os.Getenv("AMQP_URL")
conn, err = amqp.Dial(url)
if err != nil {
logErr(err, "Failed to connect to RabbitMQ")
}
...
我的撰写文件:
version: '3.3'
services:
blur-rabbitmq:
image: rabbitmq:3-alpine
container_name: blur-rabbitmq
restart: always
hostname: rabbitmq
ports:
- 5672:5672
- 15672:15672
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
RABBITMQ_DEFAULT_VHOST: "/"
blur-service:
depends_on:
- blur-rabbitmq
build: .
container_name: blur-service
restart: always
volumes:
- type: bind
source: /Users/name/Desktop/source-images
target: /source-images
ports:
- 8080:8080
environment:
AMQP_URL: ${AMQP_URL}
和我的.env文件:
AMQP_URL=amqp://guest:guest@localhost:5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
有什么想法可以调试吗?
答案 0 :(得分:0)
我明白了。错误出在.env文件中:
我应该使用AMQP_URL=amqp://guest:guest@blur-service:5672
而不是AMQP_URL=amqp://guest:guest@localhost:5672
。