Kafka Streams:做一份缓慢的准时工作有什么负面影响?
Kafka Streams: What are the negative consequences of having a slow punctuate job?
在我们的 Kafka Streams 拓扑中,我们有一些标点符号,可能需要很长时间才能 运行(几分钟)。
如此缓慢的标点符号会产生什么后果?他们 运行 在标点 运行 时会停止处理记录的过程吗?它们会导致重新平衡吗?
如果您的标点符号逻辑 运行 像几分钟一样缓慢,Kafka 流将不会从特定分区(在其上执行标点符号)消费新消息,直到标点符号完成执行。同样长 运行ning 标点符号不应触发重新平衡(重新平衡可能由于其他原因而发生)
一个分区上的标点符号是否会影响其他分区取决于您 运行 应用程序是在单个节点上还是在多个节点上,还取决于您可能为 Kafka Streams 指定的 num.stream.threads
属性。
如果您的应用程序 运行ning 在单个节点上,Kafka 流将仅对所有分区使用单个线程(默认情况下,num.stream.threads
为 1)。所以在这种情况下,特定分区上的标点符号也会阻止所有其他分区。但是如果你有多个应用程序实例 and/or num.stream.threads
大于 1,如果一些标点符号 运行 很快,那么这样的分区将不会受到 long 运行ning 标点符号的影响其他分区。
在我们的 Kafka Streams 拓扑中,我们有一些标点符号,可能需要很长时间才能 运行(几分钟)。
如此缓慢的标点符号会产生什么后果?他们 运行 在标点 运行 时会停止处理记录的过程吗?它们会导致重新平衡吗?
如果您的标点符号逻辑 运行 像几分钟一样缓慢,Kafka 流将不会从特定分区(在其上执行标点符号)消费新消息,直到标点符号完成执行。同样长 运行ning 标点符号不应触发重新平衡(重新平衡可能由于其他原因而发生)
一个分区上的标点符号是否会影响其他分区取决于您 运行 应用程序是在单个节点上还是在多个节点上,还取决于您可能为 Kafka Streams 指定的 num.stream.threads
属性。
如果您的应用程序 运行ning 在单个节点上,Kafka 流将仅对所有分区使用单个线程(默认情况下,num.stream.threads
为 1)。所以在这种情况下,特定分区上的标点符号也会阻止所有其他分区。但是如果你有多个应用程序实例 and/or num.stream.threads
大于 1,如果一些标点符号 运行 很快,那么这样的分区将不会受到 long 运行ning 标点符号的影响其他分区。