【问题标题】:How to setup docker compose with redis, sentinel and django+celery如何使用 redis、sentinel 和 django+celery 设置 docker compose
【发布时间】: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


【解决方案1】:

我终于找到了错误。我使用了CELERY_RESULT_BACKEND 的标记,并且没有设置隐藏的CELERY_RESULT_BACKEND_TRANSPORT_OPTIONS 参数中的选项。

在我的例子中,这里是 django 中使用 celery 和 sentinel 的代码:

CELERY_BROKER_URL = "sentinel://sentinel1:26379/0;sentinel://sentinel2:26380/0"
CELERY_RESULT_BACKEND = "sentinel://sentinel1:26379/0;sentinel://sentinel2:26380/0"
CELERY_BROKER_TRANSPORT_OPTIONS = {"visibility_timeout": 3600, "master_name": "cluster1"}
CELERY_RESULT_BACKEND_TRANSPORT_OPTIONS = {"visibility_timeout": 3600, "master_name": "cluster1"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-28
    • 2017-11-19
    • 2021-12-08
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多