Kafka Streams 中的子拓扑是什么?

What is subtopology in Kafka Streams?

我一直在探索 Kafka Streams 的来源,但很难理解运算符会为一个或多个子拓扑做些什么(然后 node groups). Can someone explain what to use so Topology.describe 显示子拓扑?

什么是子拓扑?

似乎 Apache Kafka 文档没有详细描述它们......在 Confluent 文档中有一节关于它:https://docs.confluent.io/platform/current/streams/architecture.html#stream-partitions-and-tasks

Sub-topologies (also called sub-graphs): [...] A sub-topology is a set of processors, that are all transitively connected as parent/child or via state stores in the topology. Hence, different sub-topologies exchange data via topics and don’t share any state stores. [...]

一个节点组是子拓扑的内部名称

子拓扑是独立缩放的,即每个子拓扑可能有不同数量的实例化(所谓的任务)取决于所有分区的最大数量它的输入主题。