文章目录

  • 一执行流程图
  • 二 事务
  • 2.1 推送事务流程
  • 2.2 拉取事务流程


一执行流程图

flume数据分析 flume简单数据处理过程_回滚


1⃣️:Source 接受数据

2⃣️:Channel Processor 处理 Event

3⃣️:Channel Processor 将 Event 传递给 interceptor链对 Event 进行过滤操作

4⃣️:过滤完之后再把 Event 发送回 Channel Prodessor

5⃣️:Channel Processor把 Event 发送给Channel selectors

6⃣️:Channel selector返回Event 属于哪个Channel

7⃣️:根据第6步返回的结果,将Event发送到指定的Channel

8⃣️:SinkProcessor从Channel中拉去数据

9⃣️:最后把数据Sink出去

二 事务

flume数据分析 flume简单数据处理过程_回滚_02

2.1 推送事务流程

doPut: 把批数据写入到临时缓冲区putList
doCommit: 检查Channel容量是否足够,如果容量足够则把putList里的数据发送到Channel
doRollBack:如果Channel容量不够,则把数据回滚到putList

2.2 拉取事务流程

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