Flume的特性

Flume的特性

  • 可靠性:事务型的数据传递,保证数据的可靠性。一个日志交给flume来处理,不会出现此日志丢失或未被处理的情况 ;

    • 消息(批量)通过每个Agent的channel,然后发送给下一个Agent或者最终的存储平台。只有当下一个agent或者最终的存储平台接收并保存后,才会从Channel中移除。这也是Flume(单跳,single-hop)传送语义中如何提供端对端的数据流可靠性的。
    • Flume使用事务方式来保证消息传输的可靠性(这一点非常重要)。Sources和Sinks在存储、检索的操作都会分别分装在由Channel提供的事务中,这可以确保一组消息在Flow内部点对点传递的可靠性(source->channel->sink)。即使在多级Flows模式中,上一级的sink和下一级的source之间的数据传输也运行在各自的事务中,以确保数据可以安全的被存储在下一级的channel中。
  • 可恢复性:通道可以以内存或文件的方式实现,内存更快,但不可恢复。文件较慢但提供了可恢复性

    • Flume支持持久类型的FileChannel,即Channel的消息可以被保存在本地的文件系统中,这种Channel支持数据恢复。此外,还支持MemoryChannel,它是基于内存的队列,效率很高但是当Agent进程失效后,那些遗留在Channel中的消息将会丢失(而无法恢复)。
Flume的事务机制
  1. Flume的事务机制与可靠性保证的实现,最核心的组件是Channel(通道)。如果没有Channel组件,而紧靠Source与Sink组件是无从谈起的
    文件通道指的是将事件存储到代理(Agent)本地文件系统中的通道。虽然要比内存通道慢一些,不过它却提供了持久化的存储路径,可以应对大多数情
    况,它应该用在数据流中不允许出现缺口的场合
  2. 文件通道指的是将事件存储到代理(Agent)本地文件系统中的通道。虽然要比内存通道慢一些,不过它却提供了持久化的存储路径,可以应对大多数情
    况,它应该用在数据流中不允许出现缺口的场合
  3. File channel虽然提供了持久化,但是其性能较差,吞吐量会受到一定的限制。相反,memory channel则牺牲可靠性换取吞吐量。当然,如果机器断电重
    启,则无法恢复。在实际应用中,大多数企业都是选择内存通道,因为在通过flume收集海量数据场景下,使用FileChannel所带来的性能下降是很大的甚
    至是无法忍受的
    在这里插入图片描述2.1 推送事务流程
    doPut: 把批数据写入到临时缓冲区putList
    doCommit: 检查Channel容量是否足够,如果容量足够则把putList里的数据发送到Channel
    doRollBack:如果Channel容量不够,则把数据回滚到putList

2.2 拉取事务流程
doTake:把数据读取到临时缓冲区takeList
doCommit:检查数据是否发送成功,成功的话,则把event从takeList中移除
doRollBack:如何发送失败,则把takeList的数据回滚数据到Channel

原文链接:https://blog.youkuaiyun.com/u010452388/article/details/101697570

put事务流程

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

Take事务

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值