Flume个人心得笔记之事务机制

本文深入探讨了Flume的事务机制,重点介绍了put事务流程与Take事务的具体操作,包括批数据写入、内存队列检查、数据发送及异常处理等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                Flume个人心得笔记之事务机制

目录

                                Flume个人心得笔记之事务机制

一、概述

二、put事务流程

三、Take事务


一、概述

  1. Flume的事务机制与可靠性保证的实现,最核心的组件是Channel(通道)。如果没有Channel组件,而紧靠Source与Sink组件是无从谈起的
  2. 文件通道指的是将事件存储到代理(Agent)本地文件系统中的通道。虽然要比内存通道慢一些,不过它却提供了持久化的存储路径,可以应对大多数情况,它应该用在数据流中不允许出现缺口的场合
  3. File channel虽然提供了持久化,但是其性能较差,吞吐量会受到一定的限制。相反,memory channel则牺牲可靠性换取吞吐量。当然,如果机器断电重启,则无法恢复。在实际应用中,大多数企业都是选择内存通道,因为在通过flume收集海量数据场景下,使用FileChannel所带来的性能下降是很大的甚至是无法忍受的

二、put事务流程

 

  1. doPut:将批数据先写入临时缓冲区putList(Linkedblockingdequeue)
  2. doCommit:检查channel内存队列是否足够合并。
  3. doRollback:channel内存队列空间不足,回滚,等待内存通道的容量满足合并
  4. putList就是一个临时的缓冲区,数据会先put到putList,最后由commit方法会检查channel是否有足够的缓冲区,有则合并到channel的队列

三、Take事务

 

  1. doTake:先将数据取到临时缓冲区takeList(linkedBlockingDequeue)
  2. 将数据发送到下一个节点
  3. doCommit:如果数据全部发送成功,则清除临时缓冲区takeList
  4. doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takeList中的数据归还给channel内存队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值