Closed fantaxy closed 9 months ago
这个 PR 内容有点多,我需要慢慢看看 :(
不过粗看下来,我目前合不了这个 PR。
主要是这个机制仅仅支持了一个新加入的 sarama input,和我对 Gohangout 的构想有些不一样。
然后,每个 event 都 commit 一下,对 kafka 的压力比较大,我建议你如果生产上已经在用的话,可以改进一下这一点。
我会再细看一下你的代码,了解学习下你的想法~
抱歉,提交得有些匆忙。 不过这里我理解倒不会每个event都commit,sarama的MarkOffset的说明: // Note: calling MarkOffset does not necessarily commit the offset to the backend // store immediately for efficiency reasons, and it may never be committed if // your application crashes. This means that you may end up processing the same // message twice, and your processing should ideally be idempotent. MarkOffset(topic string, partition int32, offset int64, metadata string) 实际效果就是,commit还是autocommit打开后按设置的时间间隔触发的,但offset是在event实际处理完才去mark。
新加入的sarama input主要就是为了使用这个MarkOffset的机制。
@fantaxy 抱歉我先把这个 PR 关上了 :(