Kafka如何向特定用户发送消息?

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

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

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

apache-kafka apache-kafka-streams kafka-producer-api
2个回答
1
投票

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

阅读更多:


1
投票

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

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