0%

接收处理器

接收处理器

可以使用接收处理器来创建sink组,进而实现故障转移和负载均衡的功能,官方提供了三种处理器,Default Sink Processor、Failover Sink Processor、Load balancing Sink Processor,可以使用Failover Sink Processor来完成故障转移,使用Load balancing Sink Processor来完成负载均衡

Default Sink Processormore的处理器只能接收一个接收器,不能创建sink组

故障转移

Flume提供了故障转移功能,通过为接收器Processor配置维护一个优先级列表,以保证每一个有效事件都能够处理。通过processor.type来指定是故障转移还是负载均衡,failover表示故障转移

1
2
3
4
5
6
7
8
9
10
# 声明sink组
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = k1 k2
# 配置处理器类型为故障转移
a1.sinkgroups.g1.processor.type = failover
# 配置优先级,数值越大优先级越高,只有优先级高的挂掉之后才会给优先级低的发送
a1.sinkgroups.g1.processor.priority.k1 = 5
a1.sinkgroups.g1.processor.priority.k2 = 10
# 挂掉之后多长时间不考虑该sink
a1.sinkgroups.g1.processor.maxpenalty = 10000

负载均衡

Flume提供了负载均衡功能,提供了轮询(round_robin)和随机(random)两种策略,可以通过processor.selector属性指定

1
2
3
4
5
6
7
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = k1 k2
# 配置处理器类型为负载均衡
a1.sinkgroups.g1.processor.type = load_balance
a1.sinkgroups.g1.processor.backoff = true
# 配置策略为随机
a1.sinkgroups.g1.processor.selector = random