如何保持Flink运动消费者的幂等性?

问题描述 投票:1回答:1

我有一个用例,其中,我通过EMR上运行的flink作业(使用flink-kinesis连接器)使用了运动学流中的事件。作业接收事件,对其进行处理并将其下沉到某个数据存储中。通过处理,我的意思是应用一些转换(数据丰富)并进行聚合。我在这里有几个问题:

  1. 在吸收运动学中的事件时如何保持幂等性?我想只做一次处理,因为重复值可能会在汇总值时产生错误的结果。我能想到的一种方法是在事件中维护主键。但是为此,我需要存储已处理的值并每次都执行查找,这可能会降低延迟。我该如何处理?还有其他解决方法吗? (规模估算:我每天将有50万至60万个活动在直播中)

  2. 对于数据充实部分,我需要使用来自外部系统的数据。什么是外部商店的最佳人选及其消费方式?我想避免对正在处理的每个事件进行查找。

  3. 在某些情况下,我想重新处理某些事件。如果我通过主键维护幂等性,该如何处理重审案件?

apache-flink flink-streaming amazon-kinesis
1个回答
0
投票

我希望这可以帮助您设置与检查点相关的配置。

val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment
env.getCheckpointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE)
© www.soinside.com 2019 - 2024. All rights reserved.