kafka第二个思考题

第三课视频48分38秒讲了第二个思考题:加入服务亿级别,用户每秒发布位置信息,什么是topic什么是partition。然后老是给的答案是topic:user_lo cation,partition:user id。
这里是指不同的geo hash算一个topic?
然后关于partition是指每一个user id一个partition,还是指按照user id来做sharding,每一个shard一个partition?

这里讲的是 Kafka 的使用方法。
topic == “user_location” 就是一个 string。
”按照 user_id 来 partition“ 的意思是每个 Kafka partition 存的是一部分 user id 相关的位置信息。不是一个 user id 一个 partition。 这里也没有 Sharding 的概念,Kafka Partition 是有特定含义的

我的意思是这个类似于sharding,然后把user id作为sharding key。但并不叫sharding

按照准确的叫法,在 Kafka 的情况下这就叫 Partition,拿 user id 来做 partition key。但你整体理解的是对的。

选择用location 做topic, user id 做partition是因为这样的partition数量级会更小么?

Topic: “user_location” 这是一个 string,不是 variable。
Partition key: user_id 这是一个 variable。
这样做,topic 只有一个,而 user_id as partition key 可以保证分配 partition 尽量平均。

1 个赞