Не могу никак разобраться с RabbitMQ с consumer-ом.
Запускаю свои контейнеры через docker-compose все вроде как работает, очереди создаются, consumer тоже рапортует что подключился, но очереди не получает. Если в ручную перезапускаю consumer-а - подхватывает все очереди, которые были и новые начинает подхватывать сразу же.
Насколько я понял, пока не будет хотя бы одного сообщения в очереди, consumer их не видит и не получает.
И вот не пойму, это мне надо как-то логику сервисов пересматривать, или docker-compose файл?
Вот docker-compose файл:
version: "3.1"
services:
http:
container_name: "http_pr"
build:
context: "./"
dockerfile: "./docker/http.Dockerfile"
ports:
- "8085:8085"
# links:
# - "grpc:grpc"
environment:
PORT_HTTP: ":8085"
GRPC: "grpc:9000"
RMQ_PATH: "rabbitmq-broker:5672/"
RMQ_LOG: "guest"
RMQ_PASS: "guest"
depends_on:
- rabbitmq-broker
grpc:
container_name: "grpc"
build:
context: "./"
dockerfile: "./docker/grpc.Dockerfile"
ports:
- "9000:9000"
environment:
TCP_PORT: ":9000"
DB_TYPE: "inmemory"
rabbitmq-broker:
image: rabbitmq:management-alpine
container_name: "rabbitmq-broker"
hostname: rabbitmq-broker
ports:
- 5672:5672 # for sender and consumer connections
- 15672:15672
volumes:
- ./rabbitmq/data/:/var/lib/rabbitmq
- ./rabbitmq/log/:/var/log/rabbitmq
restart: unless-stopped
environment:
RABBITMQ_DEFAULT_PASS: "guest"
RABBITMQ_DEFAULT_USER: "guest"
# RABBITMQ_DEFAULT_VHOST: "/"
consumer:
build:
context: "./"
dockerfile: "./docker/consumer.Dockerfile"
depends_on:
- rabbitmq-broker
- http
environment:
RMQ_PATH: "rabbitmq-broker:5672/"
RMQ_LOG: "guest"
RMQ_PASS: "guest"
restart: on-failure