gpt4 book ai didi

apache-kafka-streams - 使用Kafka流时如何为消息生成id?

转载 作者:行者123 更新时间:2023-12-04 03:07:54 24 4
gpt4 key购买 nike

在看了很多 confluent kafka 的文章后,我想尝试实现一个普通的聊天系统。但是我在做一些结构设计的时候遇到了一些问题。当使用 mysql 作为我的数据数据库时,我可以为每条有意义的消息提供 id,例如用户表中的 user_id,消息表中的 message_id。在model表中有了id之后,就很方便客户端和服务端进行一些通信了。但是在 Kafka Stream 中,我怎样才能给每个有意义的模型在 KTable 中一个唯一的 ID?或者我真的有必要这样做吗?

最佳答案

也许我可以自己回答这个问题。

在mysql中,我们可以直接使用sequenceId,因为所有的数据都会去到一个地方,然后自动分配一个新的id。但是当表变得太大时,我们也需要将表拆分成几个小表。在这种情况下,我们也应该为每条记录重新生成唯一的id,因为这些表中自动生成的id是从0开始的。

也许在Kafka中也是如此。当我们在 kafka 中只有一个分区时,我们也可以使用 kafka 生成的 id 中的 id,因为所有的消息只会去一个地方,所以它们永远不会被复制。但是当我们想要更多分区时,我们还必须注意这些从不同分区生成的 id 不是全局唯一的。

那么我们要做的就是自己生成id。 UUID 是一种快速的方法,但我们想要一个数字,我们可以使用一些算法来实现它。也许在分布式环境中使用这样的结构:

[nodeid+threadId+current_time+auto_increased_number]

关于apache-kafka-streams - 使用Kafka流时如何为消息生成id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47429901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com