didi / KnowAgent

基于日志模板构建,采集任务动态管控、数据质量精确度量,一站式日志采集平台

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

异步发送并记录错误信息,疑问?

mujianping opened this issue · comments

您好com.didichuxing.datachannel.agent.sink.kafkaSink.KafkaSink#copyFailedOffset和com.didichuxing.datachannel.agent.sink.kafkaSink.KafkaSink#appendFaildOffset是否应该用同一把锁,copyFailedOffset在并发情况下,会不会出现丢失一部分异步发送失败的回调信息,导致重放偏移量不准

commented

不会.

kafka sink在刷新的时候,执行到copyFailedOffset方法的failedRateMapS0.clear()时候,有kafka的异步失败消息往s0 put,这时候clear,s1就没有最新的失败消息
还有个问题是,异步的时候如果agent挂掉,那么kafka异步错误信息是不也相当于没有收到,没有回滚,导致丢数据
第一次学习这个项目,往大佬不吝赐教

@huqidong 感谢大佬