标签:client using 列操作 common ack cli lan call result
为应对消费结果需要存储到关系数据库中,避免数据库down时consumer继续消费的场景
查了很多源码都记录下来,省的下次还要过滤源码。
如果将结果存储在关系数据库中,那么在数据库中存储偏移量也可以允许在单个事务中提交结果和偏移量.。因此,要么事务成功,偏移量将根据所消耗的内容进行更新,否则结果将不会被存储,偏移量不会被更新.。
每个记录都有自己的偏移量,所以要管理你自己的偏移,你只需要做以下:
enable.auto.commit=false
ConsumerRecord
to save your position.seek(TopicPartition, long)
.
这里分享一个别人的源码分析:http://blog.csdn.net/chunlongyu/article/details/52663090>
原子操作( Atomic operations): 不可中断的一个或一系列操作,就像原子一样,不能再被拆分了,已经是最小单位了,当然在这里没有单位只有操作。
标签:client using 列操作 common ack cli lan call result
原文地址:http://www.cnblogs.com/zzt-lovelinlin/p/6233445.html