我遇到的情况与从卡夫卡的 Spark 结构化蒸汽中描述的情况相同 - 从检查点恢复后再次处理的最后一条消息。当我在失败后重新启动我的 spark 作业时,最后一条消息会再次得到处理。答案之一表明接收器必须是幂等的。我不确定我是否理解这一点。
现在我写到 ES sink 并且 3 种方法实现如下:
- open 方法返回 true
- process 方法做 Http post 到 ES
- close 方法关闭连接
我想知道如何使 ES sink 幂等,以及如果数据已经被处理,如何使用 open 方法中的 2 个参数 partitionId 和 version 返回 false。
提前致谢。