【发布时间】:2020-01-03 15:05:36
【问题描述】:
我在 docker 上设置哨兵时遇到问题。在我尝试运行时,我发现的所有内容看起来都很陈旧且已被弃用并且出现问题。
我正在使用带有这样的代码的 docker-compose:
redis-master
image: redis:4.0.11-alpine
volumes:
- broker-data:/data
networks:
- db
ports:
- 6379:6379
redis-slave:
image: redis:4.0.11-alpine
command:
- redis-server --slaveof redis-master 6379
volumes:
- broker-data:/data
networks:
- db
links:
- redis-master
sentinel:
build: ./sentinel
volumes:
- broker-data:/data
networks:
- db
ports:
- 26379:26379
links:
- redis-slave
- redis-master
还有来自https://github.com/mustafaileri/redis-cluster-with-sentinel/tree/master/sentinel的哨兵
这部分似乎运行正确,但 Celery(在 Django 中载入)没有找到它。
CELERY_BROKER_URL="sentinel://sentinel:26379/0"
我尝试更改传输选项,但在使用 docker-compose 启动 django 时总是出现 No master found for None 错误。
CELERY_BROKER_TRANSPORT_OPTIONS={"my_master":"redis-master", "master_name":"redis-master"}
关于我犯的错误的任何想法,或者在 django 上使用 sentinel 和 docker 的好技巧?
Django 2.2.8
芹菜 4.3.0
【问题讨论】:
-
我打赌这两个 Redis 容器需要单独的支持数据。 (您可以删除所有
links:和手动networks:设置,而不会对此设置产生任何重大影响。) -
没有解决问题
标签: django docker docker-compose celery redis-sentinel