flume中:memory channel,file channel,jdbc channel,Psuedo Transaction Channel的区别 (小宋 子 小李子 小辉子)

当设计Flume数据流程图时,决定使用什么类型的channel将是至关重要的。在写这篇文章是,当前有几个channel可供选择,分别是Memory Channel, JDBC Channel , File Channel,Psuedo Transaction Channel。比较常见的是前三种channel。具体使用那种channel,需要根据具体的使用场景。这里我详细讲解File Channel 和Memory Channel,而JDBC Channel当前支持它本身嵌入的Derby 数据库。

      File Channel是一个持久化的隧道(channel),他持久化所有的事件,并将其存储到磁盘中。因此,即使Java 虚拟机当掉,或者操作系统崩溃或重启,再或者事件没有在管道中成功地传递到下一个代理(agent),这一切都不会造成数据丢失。

     Memory Channel是一个不稳定的隧道,其原因是由于它在内存中存储所有事件。如果java进程死掉,任何存储在内存的事件将会丢失。另外,内存的空间收到RAM大小的限制,而File Channel这方面是它的优势,只要磁盘空间足够,它就可以将所有事件数据存储到磁盘上。

       下面,我列举这两个Channel的有关参数配置。

 

 capacity 单位 是 event  一般是一条数据 

 

posted @ 2020-03-27 11:05  张图南  阅读(657)  评论(0)    收藏  举报