本文介绍了Kafka Streams API中的任务有什么用途的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试了解Kafka Streams API的体系结构,在documentation

中遇到了这一点将处理器拓扑分解为任务的所有标准是什么?只是流/主题中的分区数还是更多。

有没有人能举个例子解释一下上面的意思?如果创建任务的目的只是为了扩展,它们不应该都具有相同的拓扑吗?

推荐答案

任务是原子并行处理单元。

拓扑分为子拓扑(子拓扑是内存中转发数据的连接组件;不同的子拓扑通过主题连接)。对于每个子拓扑,输入主题分区的数量决定了创建的任务数量。如果有多个输入主题,则所有主题上的最大分区数将确定任务数。

如果您想知道Kafka Streams应用程序的子拓扑,可以调用Topology#describe():返回的TopologyDescription可以通过toString()打印,也可以遍历子拓扑及其对应的DAG。


Kafka Streams应用程序有一个拓扑,该拓扑可能有一个或多个子拓扑。您可以在Data Reprocessing with the Streams API in Kafka: Resetting a Streams Application一文中找到包含两个子拓扑的拓扑。

这篇关于Kafka Streams API中的任务有什么用途的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 20:24