系统包含用户实体。 每个用户都可以按类型获取消息。
如何在卡夫卡组织这项活动? 我知道,我可以创建主题消息并通过关键的用户ID存储消息,但是如果有百万用户呢? 数百万个分区?
答案 0 :(得分:0)
默认情况下,Kafka将使用消息密钥的哈希值,并在分区数范围内循环消息。如果您具有一百万个唯一键值和两个分区,则每个分区将获得500,000个键。如果您有十个分区,则每个分区将获得100,000个密钥,依此类推。
了解更多:
答案 1 :(得分:0)
如果使用用户ID作为密钥时有一百万个用户,则意味着使用默认分区程序时,它们将由hash(user_id) % num_partition
在分区之间进行划分,即,当未使用您的用户ID时将它们平均分配歪斜。不过,请选择最适合您的用例的分区数。