当前位置: 首页 > 知识库问答 >
问题:

Kafka Streams GlobalKTable主题需要与KStream主题相同数量的分区吗?

童琪
2023-03-14

我们希望在Kafka streams应用程序中使用GlobalKTable。输入主题(ktable/kstream)有N个分区,并且GlobalKTable将用作流应用程序中的字典。

GlobalKTable的输入主题必须与其他输入主题(它们是KTable/KStream的源)具有相同数量的分区吗?

据我所知,答案是否定的(它不受限制,主题也可能有M个分区,其中N>M),因为GlobalKTable在stream应用程序的每个实例中都是完全加载的,并且在KStream联接操作期间不需要进行共分区。但我需要专家的确认!

谢谢你!

共有1个答案

年业
2023-03-14

不,KStream和GlobalTable(它们是join)的主题的分区数可能不同。

摘自Kafka Streams开发人员指南

在高层次上,KStream-GlobalKTable联接与KStream-KTable联接非常相似。但是,与分区表相比,全局表为您提供了更多的灵活性,但也付出了一些代价:

    null

连接共同分区要求

 类似资料:
  • 我有多个微服务和前面的API,喜欢使用相同的主题为事件每个域事件在单独的分区,我能够配置spring kafka绑定器发送到不同的分区使用 实现 我的问题是,我能否将Kstream绑定器配置为只能为@input和@output使用分区。

  • 简单问题: 假设我有一个具有3个分区的主题:Topic:StateEvents P1、P2和P3。 让我们假设生产者生成20条消息: 1, 2, 3, ..........20 我的问题是: 当制作人生成这些消息时: 1)每个消息将只在且仅在1个分区?也就是说,1在P1,2在P2,3在P3,然后4在P1,5在P2,6在P3,以此类推? 2)如果#1为真,当消费者订阅时,它将订阅所有分区,以便获得所

  • 通过Kafka文档和各种其他资源,我了解到Kafka中的消息被组织成主题。此外,主题可以分解为多个分区,每个分区可以托管在不同的服务器上。这提供了冗余和可伸缩性。 我不确定这里的“破碎”这个词是什么意思。这是否意味着,如果添加到主题的消息是,例如“1 2 3 4 5 6 7”,那么在将其分解为分区后,我们将有一个分区仅包含整个主题的子部分。就像一个分区有“1 2 3”,而另一个分区有“4 5 6”

  • 但当我运行:Caused by:java.lang.IllegalStateException时:您需要将一个theme.AppCompat主题(或后代)与此活动一起使用。 我不明白,谢谢^^

  • Kafka主题分区偏移位置始终从0或随机值开始,如何确保使用者记录是分区中的第一条记录?有没有办法找出答案?如果有的话,请让我知道。谢谢。

  • Kafka只提供一个分区内消息的总顺序,而不提供主题中不同分区之间的消息的总顺序。每分区排序与按键对数据进行分区的能力相结合,对于大多数应用程序来说已经足够了。但是,如果您需要消息的总顺序,这可以通过只有一个分区的主题来实现,尽管这意味着每个使用者组只有一个使用者进程。 下面是我的问题: > 这是否意味着如果我希望有多个消费者(来自同一组)阅读一个主题,我需要有多个分区? 分区是如何编号的?从0开