Flume-ng:multi sink one channel两种配置方式的对比

根据https://issues.apache.org/jira/browse/FLUME-1479FLume默认支持多个sink消费一个Channel,细看Flume-1479发现它的行为类似于Flume支持的sink group selectorload balance+round robin模式相似,那么有什么区别呢?

看代码里一个主要区别就是,不通过selector的多对一(multi sink consume onechannel)模式的backoffSleepIncrement=1smaxBackoffSleep=5s,并且都是hardcode的;而采用selector方式的时间参数中EXP_BACKOFF_COUNTER_LIMIT=16CONSIDER_SEQUENTIAL_RANGE(default 2s)maxBackoffSleepdefault 30s),maxBackoffSleep是可配置的;

另外的区别就是backoff的模式不同,不通过selector的多对一每次failed backoff 1s,直到maxbackoff后保持,而selector方式有一个类似“时间窗口的概念”:只有在两次出错在CONSIDER_SEQUENTIAL_RANGE内才算是连续出错而进行backoffSleep,否则则算第一次出错;

实际使用还是推荐使用selector的方式,支持failoverloadbalance模式,load balance支持的policy:random以及round robin,更灵活方便.


你可能感兴趣的:(Flume)