flume channel 选择

1.Memory Channel

type=memory

内存通道是一个内存队列,源将事件写入其尾部,接收器从其头部读取事件。内存通道存储堆上的源写入它的事件。我们可以配置最大尺寸。

由于它将所有数据存储在内存中,因此提供了高吞吐量它最适合那些不担心数据丢失的流。它不适用于涉及数据丢失的数据流

2.File Channel

type=file

它是 Flume 的持久通道。文件通道将所有水槽事件写入磁盘。即使进程或机器关闭或崩溃,它也不会丢失数据。

此通道确保仅当接收器使用事件并提交事务时,才从通道中删除提交到通道中的任何事件。即使机器/代理崩溃并重新启动,它也会这样做。

文件通道是高度并发的,可以同时处理多个水槽源和接收器。

它最适合我们需要数据持久性并且不能容忍数据丢失的流
由于该通道将数据写入磁盘,因此即使在崩溃或故障时也不会丢失任何数据。这对于拥有非常大的容量也是有利的,尤其是与内存通道相比时

3. Kafka Channel

type=org.apache.flume.channel.kafka.KafkaChannel

Kafka 通道将 Flume 事件存储在必须单独安装的 Kafka 集群中。

Kafka 通道提供高可用性和复制。如果代理或 Kafka 代理崩溃,则水槽事件立即可供其他接收器使用

我们可以将 Kafka 通道用于多种场景:

a) With Flume source and sink

这为事件提供了一个高度可用且可靠的通道

b) With Flume source and interceptor but no sink

将 Flume 事件写入 Kafka 主题,以供其他应用程序使用

c) With Flume sink, but no source

 这是一种将 Flume 事件从 Kafka 发送到 HDFS、HBase 或 Solr 等 Flume 接收器的低延迟、容错方式

4. Spillable Memory Channel(生产环境不建议使用

type=SPILLABLEMEMORY

Spillable 内存通道将事件存储在内存队列和磁盘上。内存队列是主存储,磁盘是溢出。
使用嵌入式文件通道,管理磁盘存储。

如果内存中的队列已满,则文件通道会存储额外的传入事件。

它最适合在正常运行期间需要内存通道的高吞吐量的流,同时该流需要更大的文件通道容量,以便对间歇性的水槽接收端中断或排水率下降有良好的容忍度。

在代理崩溃或重启期间,只有存储在磁盘上的 Flume 事件才会在 Flume 代理上线时恢复。Spillable 内存通道目前是实验性的,不建议在生产中使用

5.Custom Channel 

type=org.example.MyChannel

这是我们自己对 Channel 接口的实现。在启动 Flume 代理时,我们必须在代理的类路径中包含自定义通道的类及其依赖项。自定义渠道类型必须是其 FQCN

6.JDBC Channel

type=jdbc

JDBC 通道将 Flume 事件存储在由数据库支持的持久存储上。它目前支持嵌入式 Derby。
它最适用于可恢复性很重要的流程

7.Pseudo Transactional Channel(它仅用于测试目的)

type=org.apache.flume.channel.PseudoTxnMemoryChannel

不得在生产中使用它

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值