Sink组
为了消除数据处理管道中的单点故障,Flume可以使用负载平衡或故障转移策略,将event发送到不同的sink。sink组是用来创建逻辑上的一组sink。这个组的行为是由sink处理器来决定的,它决定了event的路由策略。
agent.sinkgroups=sg1
名叫”agent”的agent定义了一个sink的组叫sg1.
agent.sinkgroups.sg1.sinks=k1,k2
sg1组由k1、k2的sink组成。
设置processor.type为load_balance时,round_robin策略将被使用,还可以指定自己的负载均衡机制。processor.backoff指定一个指数级的阻塞时间用于当重试一个sink抛出异常时。设置为true,对于每个失败后的等待时间将增加一倍。
故障转移Sink组
一个sink出现故障的时候尝试另一个,设置processor.type为failover。设置其他的属性指定sink顺序。
agent.sinkgroups.sg1.sinks=k1,k2,k3
agent.sinkgroups.sg1.processor.type=failover
agent.sinkgroups.sg1..processor.priority.k1=10
agent.sinkgroups.sg1..processor.priority.k2=20
agent.sinkgroups.sg1..processor.priority.k3=30
k1 sink将会第一个使用,如果抛出了异常,k2,k3接下来会被尝试。如果sink中所有sink都失败了,channel中的事务将会回滚。
processor.maxPenality:为sink组中失败的sink被关进小黑屋的时限设置了上限值。