kafka将消息存储在单个分区上供用户使用?

2guxujil  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(358)

我有一个类似电子商务的系统,它产生不同类型的用户事件。
我需要将它们存储在kafka中进行异步数据分析。我希望特定用户的事件转到一个队列分区,以便使用者在一个分区上获取所有消息。这不是用户的专用队列。这意味着单个分区可以为多个客户存储数据。不知道我怎样才能在Kafka做到这一点?

unftdfkk

unftdfkk1#

@斑马8844的答案是正确的。同一个键将始终指向同一个分区,除非您在将来增加分区的数量,否则情况不会如此。所以请记住这一点,以防万一。

2admgd59

2admgd592#

要将特定用户的消息发送到同一分区,可以使用 key= 生产者发送方法的参数。您可以将此参数设置为必须唯一的字节编码值。例如,在python中:

producer.send("topic", json.dumps(msg).encode()), key=str(user_id).encode())

这将确保有关给定用户的消息将被推送到同一主题的分区中。

相关问题