一、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存到内存中,如果存不下,在溢出到文件中,目前处于测试阶段,还未能用于生产环境