Flume提供至少一次保证,事件至少被存储一次。有些场景会导致Flume最终会不只一次存储数据。
例如,RPC调用可以设置超时时间,若在超时时间内没有得到相应,及时RPC没有失败,也会被认为失败,从而引发重试。
若RPC没有失败,重试将导致相同事件再次发生。造成这数据存储端数据重复。
例如:Flume source可以写入多个Channel,若相同的source配置了多个Channel,并存储到相同的收集端。同样的事件也会出现重复。
如果事件是重复敏感型,通常可以在事件中插入唯一标识,后续处理可以使用这些唯一标识符删除重复数据。