Flume之Channel

一、Memory Channel

事件将被存储在内存中(指定大小的队列里),非常适合那些需要高吞吐量且允许数据丢失的场景下。

属性说明:

二、JDBC Channel

事件会被持久化(存储)到可靠的数据库里,目前支持嵌入式Derby数据库。即source=》channel=》sink。在传输的过程中,会先把事件存到关系型数据库里。但是Derby数据库不太好用,所以JDBC Channel目前仅用于测试,不能用于生产环境。

三、FileChannel

好处:数据不丢失

坏处:极大的降低flume的吞吐量,因为要频繁的发生磁盘I/O

性能比较低,但是即使程序出错数据不会丢失

配置实例:

a1.sources=r1
a1.channels=c1
a1.sinks=s1
 
a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=8888
 
a1.sinks.s1.type=logger
 
a1.channels.c1.type=file
a1.channels.c1.dataDirs=/home/filechannel
 
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1

四、内存溢出通道

优先把Event存到内存中,如果存不下,在溢出到文件中,目前处于测试阶段,还未能用于生产环境。

原文地址:https://www.cnblogs.com/johnvwan/p/15656157.html