Kafka如何将消息发送给具体用户?

时间:2020-05-19 10:49:02

标签: apache-kafka kafka-producer-api

系统包含用户实体。 每个用户都可以按类型获取消息。

如何在卡夫卡组织这项活动? 我知道,我可以创建主题消息并通过关键的用户ID存储消息,但是如果有百万用户呢? 数百万个分区?

2 个答案:

答案 0 :(得分:0)

默认情况下,Kafka将使用消息密钥的哈希值,并在分区数范围内循环消息。如果您具有一百万个唯一键值和两个分区,则每个分区将获得500,000个键。如果您有十个分区,则每个分区将获得100,000个密钥,依此类推。

了解更多:

答案 1 :(得分:0)

如果使用用户ID作为密钥时有一百万个用户,则意味着使用默认分区程序时,它们将由hash(user_id) % num_partition在分区之间进行划分,即,当未使用您的用户ID时将它们平均分配歪斜。不过,请选择最适合您的用例的分区数。