我经常使用Camel的幂等模式来防止重复处理离散消息。 当有问题的数据流是大量带有时间戳的邮件时,最好的做法是什么?
考虑这个路由配置(伪代码):
计时器 - > idempotent(search_splunk_as_batch - > split - > sql(insert))
我们希望定期从splunk查询并写入sql。我们不想错过任何消息,我们不希望有任何重复的消息。
我不想为每条消息保留一个幂等标记,而是要注意每个批处理的截止时间,并在截止时间开始下一个查询。
答案 0 :(得分:1)
只要您可以依赖某些假设,您的方法就可能有效:
_time
字段)如果您可以确保满足这些要求,那么您只需存储从搜索中收到的最大时间戳,并将其用于" earliest
" splunk搜索命令的参数。存储和检索最大时间戳可以使用类似文件,单独的数据库表或使用目标表中的列来完成。