在Kafka中将事件分类为许多主题

kr98yfug  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(253)

我有一个事件流,可以按类型和每小时的时间戳进行分类。我最初的想法是在Kafka中将事件分为不同的主题(一对一的类别)。然而,它很容易以数百个主题结束。另外,如果它们没有被正确地清理(在我的例子中是动态编程的[1]),系统很可能会留下成千上万个它们。从我读到的[2]来看,这似乎在zookeeper中造成了很大的开销。
我的第二个想法是将事件流到一个主题,并创建多个消费者。它的缺点是对带宽的浪费,因为每个消费者都必须浏览所有事件以查找自己感兴趣的事件。
另一种方法是结合我的第一种和第二种方法并找到折衷方法。i、 e.创建一个主题和多个分区;某些类别的事件进入同一分区。
我想知道在这种情况下,理智的做法是什么。

b5lpy0ml

b5lpy0ml1#

我认为最好的策略是为每个语义不同的数据流创建一个主题,并在需要更多并行性时对其进行分区。通过这种方式,您可以轻松地将每个使用者设置为从相应的主题中读取内容,而添加新分区是很简单的,因为使用者将自动开始从新分区中进行消费。
正如您所建议的,还可以根据事件的类别对数据进行分区,并将使用者组设置为从所有事件中读取,但是如果您要添加更多分区(或更多使用者),这可能会产生问题,因为您可能需要修改使用者和分区之间的Map。同时,增加并行性也变得更加复杂。
我建议你一开始不要担心Zookeeper的表现,从最自然的方法开始。Kafka通常可以处理大量的主题而不需要太多的开销。

相关问题