使用单一通道与数千个消费者时,Redis pub sub 性能影响和限制

问题描述 投票:0回答:1

在我们的 Spring boot 应用程序中,我们希望使用 Redis 发布-订阅将消息发布到正常情况下拥有大约 500 个侦听器的通道。 但在某些罕见的时间/日子里,听众可能会多达 10000 人。

系统特点如下:

  • 使用此设置的消息很小,而且频率也很低,最多每周一次。
  • 10000名听众的场景也比较罕见。

我对以下问题有以下疑问:

  1. 这是否可行,或者频道的听众/订阅者数量是否有限制?
  2. 在此设置中,当有 10K 个客户端时,这会导致 Redis 中打开 10K 个连接吗?
  3. 有更好的方法来做到这一点吗? (例如,生产者不是发布到 pub-sub,而是在 Redis 中创建密钥,而消费者可以按计划检查 Redis 密钥是否存在)
redis publish-subscribe spring-data-redis
1个回答
0
投票

频道的听众/订阅者数量有限制吗?

订阅者数量没有限制。但是,Redis 通过 maxclients 配置限制客户端(即连接)数量,默认为 10000。注意:您还需要确保您的系统允许大量打开文件。

在此设置中,当有 10K 个客户端时,这会导致 Redis 中打开 10K 个连接吗?

有更好的方法来做到这一点吗? (例如,生产者不是发布到 pub-sub,而是在 Redis 中创建密钥,而消费者可以按计划检查 Redis 密钥是否存在)

你的建议还不错,因为订阅者太多的情况很少见。

此外,您可以为主服务器设置多个副本,并将订阅者分发到这些副本。这样每个副本就不必维护太多的连接。

© www.soinside.com 2019 - 2024. All rights reserved.