Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka Kafka表中聚合记录的超时?_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Apache kafka Kafka表中聚合记录的超时?

Apache kafka Kafka表中聚合记录的超时?,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我使用卡夫卡来处理消息。消息可以分为几个部分(它是一个复合消息)。例如,在流中,我可以有一个复合消息,它被分为三部分。换言之,卡夫卡流中会有三条记录,但这是一条重要信息。我想使用Kafka表将复合消息的部分合并到一个Kafka记录中。合并后,将在数据库(Postgres)中插入一条消息。每个零件都有编号和零件总数。例如,如果流中有一条消息的三个部分(三条卡夫卡记录),则每个部分都有值为3的部分总数字段 据我所知,这项任务在正面场景中很简单:在表中聚合部分,从表中创建流,并过滤具有相等聚合部分大小

我使用卡夫卡来处理消息。消息可以分为几个部分(它是一个复合消息)。例如,在流中,我可以有一个复合消息,它被分为三部分。换言之,卡夫卡流中会有三条记录,但这是一条重要信息。我想使用Kafka表将复合消息的部分合并到一个Kafka记录中。合并后,将在数据库(Postgres)中插入一条消息。每个零件都有编号和零件总数。例如,如果流中有一条消息的三个部分(三条卡夫卡记录),则每个部分都有值为3的部分总数字段

据我所知,这项任务在正面场景中很简单:在表中聚合部分,从表中创建流,并过滤具有相等聚合部分大小和部分总数的记录,在一条合并消息中映射过滤并将其插入数据库(Postgres)


但也有可能出现负面情景。在极少数情况下,其中一个部分根本无法插入卡夫卡(或者在超时后很晚才能插入)。例如,在流中,一条复合消息中只有三条消息的两个部分会出现。在这种情况下,我必须在数据库(Postgres)中插入未完全构造的消息(它将只包含两部分,而不是三部分)。我如何在卡夫卡中实现这种消极情景

我建议查看标点符号:

还请注意,您可以混合和匹配处理器API和DSL:

如果为KTable聚合提供存储名称,则可以将存储连接到注册标点符号的自定义处理器。总的来说,在整个应用程序中使用处理器API而不是DSL可能更好