【问题标题】:celery with redis as broker and result backend uses too many redis connections以 redis 作为代理的 celery 和结果后端使用了太多的 redis 连接
【发布时间】:2020-04-15 23:48:42
【问题描述】:

我们有一个 celery 集群,redis 作为 broker 和结果后端,大约有 100+ 个服务器,200+ 个队列,目前,redis 连接数(9000+)接近最大连接阈值(10000),它当新的服务器添加到集群中时,它仍在逐渐增加。

我们在celery中中继任务状态来实现一些检查,所以我们不能设置ingore_result=True(这种方法可以快速减少redis连接,但是考虑到其他功能的限制我们不能使用它),并且BROKER_POOL_LIMIT已经设置为0了,但是并没有太大的作用,有没有其他方法可以减少redis的连接?

【问题讨论】:

    标签: redis celery


    【解决方案1】:

    我也遇到过使用 redis 作为代理和结果后端的问题,由于单线程性质,如此巨大的负载 redis 性能不佳,对于每个任务,它必须将结果保存为单独的键。 您可以尝试重新架构 celery 以使用 AMQP 系统,例如 RabbitMq 用于代理,redis 用于结果后端。 看看这篇文章,它很好地解释了事情 http://techscouter.blogspot.com/2018/05/celery-with-heavy-workloads.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 2019-06-11
      • 2013-04-27
      • 2019-08-29
      • 2012-03-01
      • 2016-04-05
      • 2021-10-03
      相关资源
      最近更新 更多