美文网首页
Flume-1.8.0(九)事务机制

Flume-1.8.0(九)事务机制

作者: _大叔_ | 来源:发表于2021-07-30 13:23 被阅读0次

    概述

    flume 的事务机制与可靠性保证的实现,最核心的组件是 channel,如果没有 channel 组件,而仅靠source与sink组件是无从谈起的。

    flume 内存通道事务机制

    put事务

    put事务流程
    • doput 将批数据先写入临时缓冲区putList(LinkedBlockingDequeue)链表结构组成的双向阻塞队列。
    • doCommit 检查 memoryChannel 内存队列是否足够合并
    • doRollback memoryChannel 内存队列空间不足,回滚,等待内存通道容量满足合并

    putList 就是一个临时的缓冲区,数据会先put到putList,最后由commit方法检查memoryChannel 是否有足够的缓冲区,有则合并到 memoryChannel 的队列。

    take事务

    take 事务流程
    • doTake 先将数据发往临时缓冲区 takeList(LinkedBlockingDequeue)将输出发送到下一个节点
    • doCimmit 如果数据全部发送成功,则清除临时缓冲区takeList
    • doRollback 数据发送过程中出现异常,rollback将临时缓冲区takeList中的数据归还给 memoryChannel
    • bucketWriter类 会监听数据的发送成功或失败,并响应给 takeList

    相关文章

      网友评论

          本文标题:Flume-1.8.0(九)事务机制

          本文链接:https://www.haomeiwen.com/subject/rbhpjltx.html