Kafka Streams - 如何更好地控制内部创建的状态存储主题的分区?

2023-11-29

Kafka Streams 中的状态存储是在内部创建的。 状态存储按键分区,但不允许提供除by key(据我所知)。

问题

How to 控制状态存储内部创建主题的分区数量?状态存储主题如何推断默认情况下要使用的分区数量和分区,以及如何覆盖?

如果您想通过传入键值记录的键以外的其他内容对状态存储进行分区并进行共同分区,该如何解决这个问题?在这种情况下,我想按比常规密钥更具体的内容进行分区。例如。我有一个

case class RegularKey(fieldA: String)

我想分区

case class SpecificKey(fieldA: String, fieldB: String)

对于我传入的源主题,我在分区数量上使用 HashPartitioner。


变更日志主题分区的数量取决于输入主题分区的数量,并且您无法更改它,因为状态是根据该数量共享的(即,分片有一个分区)。

如果您想按某些属性对变更日志主题进行分区,则必须将其设置为键。对于您的情况,您必须设置SpecificKey作为消息键。不允许更改分区,因为这会“破坏”Kafka Streams,导致错误的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kafka Streams - 如何更好地控制内部创建的状态存储主题的分区? 的相关文章

随机推荐