Kafka Streams:标点与过程
Kafka Streams: Punctuate vs Process
在流应用程序中的单个任务中,独立执行以下两个方法 运行(这意味着当方法 "process" 正在处理来自上游源的传入消息时,方法 "punctuate" 也可以 运行 基于指定的时间表和 WALL_CLOCK_TIME 作为 PunctuationType 并行?)或者它们是否共享相同的线程所以它是 运行 在给定时间的任何一个,如果如果 process 方法不断从上游源获取消息,那么 punctuate 方法永远不会被调用吗?
Processor.process(K键,V值)
使用给定的键和值处理记录。
ProcessorContext.schedule(长区间,PunctuationType类型,标点回调)
为处理器安排定期操作。
另外,请说明标点法中partition id值为-1是什么意思。 punctuate 方法不是特定于任何分区吗?
- int ProcessorContext.partition()
Returns当前输入记录的分区id;如果它不可用(例如,如果从 punctuate 调用中调用此方法),则可能为 -1
两种方法都在一个线程中执行。如果有或没有输入数据,将独立调用基于挂钟的 punctuate()
:在调用 process()
之间,线程检查系统时间并在必要时调用 punctuate()
。
对于分区信息:是的,标点符号与分区无关。当然,标点符号是特定于任务的,但是,任务可能有多个输入分区(例如,如果它执行 merge
或 join
),因此不清楚要传递什么分区信息。对于简单,单分区案例的处理方式与多分区案例相同,标点符号与分区分离。
在流应用程序中的单个任务中,独立执行以下两个方法 运行(这意味着当方法 "process" 正在处理来自上游源的传入消息时,方法 "punctuate" 也可以 运行 基于指定的时间表和 WALL_CLOCK_TIME 作为 PunctuationType 并行?)或者它们是否共享相同的线程所以它是 运行 在给定时间的任何一个,如果如果 process 方法不断从上游源获取消息,那么 punctuate 方法永远不会被调用吗?
Processor.process(K键,V值)
使用给定的键和值处理记录。ProcessorContext.schedule(长区间,PunctuationType类型,标点回调)
为处理器安排定期操作。
另外,请说明标点法中partition id值为-1是什么意思。 punctuate 方法不是特定于任何分区吗?
- int ProcessorContext.partition()
Returns当前输入记录的分区id;如果它不可用(例如,如果从 punctuate 调用中调用此方法),则可能为 -1
两种方法都在一个线程中执行。如果有或没有输入数据,将独立调用基于挂钟的 punctuate()
:在调用 process()
之间,线程检查系统时间并在必要时调用 punctuate()
。
对于分区信息:是的,标点符号与分区无关。当然,标点符号是特定于任务的,但是,任务可能有多个输入分区(例如,如果它执行 merge
或 join
),因此不清楚要传递什么分区信息。对于简单,单分区案例的处理方式与多分区案例相同,标点符号与分区分离。