Flume Sink、Sink运行器、Sink组和Sink处理器

Sink运行器(Sink Runner)运行一个Sink组(Sink Group),Sink组可以含有一个或多个Sink。如果组中只存在一个Sink,那么没有组将会更有效率。Sink运行器仅仅是一个询问Sink组(或Sink)来处理下一批事件的线程。每个Sink组有一个Sink处理器(Sink Processor),处理器选择组中的Sink之一去处理下一个事件集合每个Sink只能从一个Channel获取数据(一个Sink只能有一个Channel),尽管多个Sink可以从同一个Channel获取数据。选定的Sink(或如果没有组,唯一的Sink)从Channel中接受事件,并将事件写入到下一阶段或最终目的地。

1.  Sink组

Flume配置框架为每个Sink组实例化一个Sink运行器,来运行Sink组。每个Sink组可以包含任意数量的Sink。Sink运行器持续请求Sink组,要求其中的一个Sink从自己的Channel中读取事件Sink组通常用于RPC Sink,在层之间以负载均衡或故障转移方式发送数据

Sink组中的每个Sink必须单独进行配置。这包括:Sink从哪个Channel读取,写数据到哪些主机或者集群。在理想情况下,如果Sink组中建立了几个Sink,所有的Sink将从相同的Channel读取,这将有利于在当前层以合理的速度清除数据,确保将要被发送到多台集群的数据,以一种支持负载均衡和故障转移的方式进行发送。

2.  Load-Balancing Sink处理器

Load-Balancing Sink 处理器从所有的Sink中选择一个Sink,处理来自Channel的事件。

Sink选择的顺序可以为random或者round-robin。如果顺序被设置为random,那么将随机从Sink组的Sink中选择一个,用来从自己的Channel中移除事件并将它们写出。round-robin选项使Sink以循环的方式被选择:每个选择循环调用定义Sink组中指定顺序Sink的process方法。如果Sink写入到一个失败的Agent或者速度太慢的Agent,会导致超时,Sink处理器会选择另一个Sink写数据。

Sink处理器可以配置将失败的Sink加入黑名单,回退时间以指数方式增长直到达到上限值。这能确保相同的Sink不会循环重复尝试且不浪费资源,直到回退时间过期。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值