在mapGroupsWithState中,对于键的值,我想应用一些逻辑,例如值是否满足我插入数据库的要求,否则更新数据库。如何确保端到端精确一次,在任何点上都可能出现故障?例如,一些伪代码,例如:
if (condition1):
update state
else:
if (condition 2):
insert database
else:
update database
如果更新失败: 1.下次作业重新启动时,将使用最后一批的状态吗? 2.如果已经发生了一些插入操作,则当更新失败导致作业重新启动时,该插入操作无法回滚,这意味着接收器必须是等幂的,对吧?
谢谢