Flume提供了大量的Channel,下面主要介绍Memory Channel、File Channel、Kafka Channel和Spillable Memory Channel。
类型 | 说明 |
---|---|
Memory Channel | Event数据存储在内存中。 |
JDBC Channel | Event数据存储在持久化存储中,当前Flume Channel内置支持Derby。 |
Kafka Channel | Event数据存储在Kafka Topic中。 |
File Channel | Event数据存储在磁盘文件中。 |
Spillable Memory Channel | Event数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件(当前试验性的,不建议生产环境使用)。 |
Pseudo Transaction Channel | 单元测试用。 |
Custom Channel | 自定义Channel实现。 |
Memory Channel
Memory Channel把Event保存在内存队列中,该队列能保存的Event数量有最大值上限。由于Event数据都保存在内存中,Memory Channel有最好的性能,不过也有数据可能会丢失的风险,如果Flume崩溃或者重启,那么保存在Channel中的Event都会丢失。同时由于内存容量有限,当Event数量达到最大值或者内存达到容量上限,Memory Channel会有数据丢失。
配置项 | 默认值 | 说明 |
---|---|---|
type | 值为memory | |
capacity | 100 | |
transactionCapacity | 100 |