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

How does Kafka sends message to concrete user?

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

如何在 Kafka 中组织这个? 我知道,我可以通过关键用户 ID 创建主题消息和存储消息,但如果有百万用户怎么办? 百万个分区?

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

阅读更多:

如果使用 user-id 作为键时有一百万个用户,这意味着他们将在使用默认分区程序时按 hash(user_id) % num_partition 在分区之间进行拆分,即当您的 user-id没有倾斜。选择最适合您的用例的分区数。