- 0
- 0
- 约小于1千字
- 约 1页
- 2026-09-16 发布于北京
- 举报
《058_KafkaSink是如何在一个事务中从Channel获取数据的?》
如果是基于内存的MemoryChannel,正常情况下是往Transaction里的内存队列中写,一旦
Commit的话,就是提交到Channel层面的一个内存队列里去,只要说是一个transaction完
毕,数据就会进入到channel全局的一个内存队列里去
take的时候,直接就是从全局的内存队列里去获取的,poll方法,获取一条数据暂存在事务
的takelist中,接着就可以去处理这条数据了
可能会导致有部分数据已经写入kafka了,但是这些数据可能会重新放到queue里去,再次
会发送一遍这样子,所以说呢,flume他本身是没办法正常数据没有重复,所以我们自己要
注意数据重复的一些问题
原创力文档

文档评论(0)