关于可扩展性的Redis Stream设计问题

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

每个用户可以拥有 1 个 Redis 流和该流中的一个消费者组吗?例如:每个用户将生成一些内容,他们会将这些内容提供给该消费者组中的一组用户。

这可以扩展吗?如果我们有 10,000 个用户。我们可以有1个流和10,000个消费者组吗?

redis redis-streams
1个回答
0
投票

您当然可以拥有一个包含 10,000 个消费者组的流。这会起作用。但是,有一些注意事项。

流是一个密钥,并且密钥仅存在于单个分片上。而且Redis是单线程的。因此,对该流的所有访问都将通过单个分片上的单个线程进行。换句话说,每个人都会一一看同一个地方。这可能会产生可扩展性问题,具体取决于流填充和/或访问的频率。从本质上讲,该流成为热键。

创建只读副本可能会缓解这一问题——我不太确定消费者组如何使用只读副本——但是将密钥分布在分片之间的标准集群肯定不会有帮助,因为每个密钥都存在于一个且仅一个分片中.

综上所述,Redis 速度相当快,因此这可以很好地工作。它仅取决于上述一些变量。当然,还有您的硬件,虚拟的或其他的。

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