繁体   English   中英

Kafka Streams:为执行 KTable-KTable 外键连接的应用程序增加主题分区

[英]Kafka Streams: Increasing topic partitions for an application performing a KTable-KTable foreign key join

我发现的大部分信息都与主键连接有关。 我知道外键连接是 Kafka Streams 的一个相对较新的功能。 我对这将如何扩展感兴趣。 我知道 Kafka Streams 的并行性受到每个主题的分区数量的限制,但是我对增加输入主题分区的含义有一些疑问。

  • 外键连接是否对共同划分输入主题有相同的要求? 也就是说,两个主题是否需要具有相同数量的分区?
  • 在应用程序在生产中运行数月或数年之后如何添加分区? 支持每个 KTable 的更改日志主题存储来自某些输入主题分区的数据。 如果要增加输入主题中的分区,这对我们的 KTables 的 state 存储和更改日志有何影响? 据推测,我们不能只是重新开始并丢失该数据,因为它已经积累了数月和数年,并且对于执行联接至关重要。 它可能不会很快被上游数据取代。 我们是否需要吹走我们的 state 存储,创建新的输入主题,并将所有 KTable 更改日志主题数据重新发送给它们?
  • 其他内部“订阅”主题怎么样?

外键连接是否对共同划分输入主题有相同的要求? 也就是说,两个主题是否需要具有相同数量的分区?

不。有关更多详细信息,请查看https://www.confluent.io/blog/data-enrichment-with-kafka-streams-foreign-key-joins/

在应用程序在生产中运行数月或数年之后如何添加分区?

即使您不使用 Kafka Streams,您也无法真正做到这一点。 问题是,您的输入数据是按键分区的,如果您添加分区,则输入主题中的分区会中断。 -- 推荐的模式是创建一个具有不同分区数的新主题。

支持每个 KTable 的更改日志主题存储来自某些输入主题分区的数据。 如果要增加输入主题中的分区,这对我们的 KTables 的 state 存储和更改日志有何影响?

它会破坏应用程序。 事实上,Kafka Streams 会检查并在检测到输入主题分区的数量与更改日志主题分区的数量不匹配时引发异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM