【问题标题】:Celery w/ Redis broker: Is it possible to have more 10k connection带有 Redis 代理的 Celery:是否有可能拥有更多 10k 连接
【发布时间】:2015-12-07 19:29:43
【问题描述】:

目前,redis 的 maxclients 限制为 10k 所以,我不能产生超过 10k 的 celery 工人(一个 celery 工人在 50 台机器上拥有 200 个 prefork)。

在不更改 redis maxclient 限制的情况下,我可以做些什么来容纳超过 10k 的 celery 工人?

我正在考虑设置主从 redis 集群,但是 celery 守护进程如何知道连接不同的从属?

【问题讨论】:

  • 嗨 ealeon~,你能分享一些关于你最终如何解决这个问题的想法吗?

标签: python redis celery


【解决方案1】:

不要。超过 10,000 个连接的 Redis 命令延迟通常会受到严重影响。即使是基本的 Redis ping 命令也显示了这一点。

第一步:重新评估 10k 工人的要求。机会非常高,它严重膨胀。什么数据支持它?大多数时候,人们习惯于降低并发性较高的服务器,因为每个请求所花费的时间都比 Redis 多几个数量级。考虑到这一点,一个经过适当调整的 Redis 单实例每秒可以处理超过一百万个请求。算一算,你会发现你不太可能有流量工作量来让这些工作人员忙碌而不会受到其他限制,例如光速和 Redis 容量。

如果您确实需要这种级别的并发,也许可以尝试集成 Twemproxy 以更安全的方式处理连接,但如果您确实有必要的工作负载来证明 10k 并发连接是合理的,那么无论如何您都可能会看到延迟影响。

您的其他选项是 Codis 和跨多个 Redis 实例分区您的数据,或以上的某种组合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 2013-04-27
    • 2021-04-10
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多