Flume如何 保证 数据不丢失?
其一:flume使用两个独立的事务分别负责从source到channel
以及从channel到sink的事件传递,
source向channel写数据时
会先将数据写入临时缓冲区putlist,
然后检查channel是否可以写入,
如果写入成功会更新偏移量,如果不成功就回滚数据,
channel到sink的事件传递也会现将数据写入临时缓冲区takelist,
如果数据发送成功就更新偏移量,
如果发送失败就回滚数据。
其二:Channel 使用的是 File Channel:
数据存储在磁盘,宕机数据可以保存。但是传输速率慢。
这个能够保证数据不丢失。