kafka主题或分区级别的并行性

brvekthn  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(319)

为了分离我的数据,基于一个键:我应该在同一个主题中使用多个主题还是多个分区?我问的基础上的开销,计算,数据存储和服务器上造成的负荷。

rmbxnbpk

rmbxnbpk1#

正如@rmetzer所建议的,将记录拆分为多个主题将增加生产者级别的复杂性,但是可能还有一些其他因素值得考虑。
在kafka中,并行性的主要级别是一个主题中的分区数,因为这样就可以生成那么多的使用者示例,以保持并行地读取同一主题中的数据。
e、 g如果您有一个单独的主题,基于具有n个分区的事件,那么在消费时,您将能够创建n个消费示例,每个示例都专用于同时消费特定分区。但在这种情况下,不能保证消息的顺序。在存在并行消费时,消息的排序将丢失
另一方面,将同一主题中的记录保存在一个单独的分区中,将使这一点更易于实现,并使使用者消息按顺序排列(kafka只提供分区中消息的总顺序,而不是主题中不同分区之间的顺序)。但在这种情况下,您只能运行一个使用者进程。

jqjz2hbq

jqjz2hbq2#

我建议您在同一主题中将数据分割成多个分区。我假设数据在逻辑上属于一起(例如,单击事件流)。在同一主题中使用多个分区对数据进行分区的好处主要是所有kafkaapi都是这样实现的。
将数据拆分为主题可能会在生产者和消费者实现中产生更多的代码。

相关问题