1.概述

Sink Group允许用户将多个Sink组合成一个实体。
Flume Sink Processor 可以通过切换组内Sink用来实现负载均衡的效果,或在一个Sink故障时切换到另一个Sink。
 
sinks – 用空格分隔的Sink集合
processor.type default 类型名称,必须是 default、failover 或 load_balance
 

2.Default Sink Processor

Default Sink Processor 只接受一个 Sink。
不要求用户为单一Sink创建processor
 

3.Failover Sink Processor

Failover Sink Processor 维护一个sink们的优先表。确保只要一个是可用的就事件就可以被处理。
失败处理原理是,为失效的sink指定一个冷却时间,在冷却时间到达后再重新使用。
sink们可以被配置一个优先级,数字越大优先级越高。
如果sink发送事件失败,则下一个最高优先级的sink将会尝试接着发送事件。
如果没有指定优先级,则优先级顺序取决于sink们的配置顺序,先配置的默认优先级高于后配置的。
在配置的过程中,设置一个group processor ,并且为每个sink都指定一个优先级。
优先级必须是唯一的。
另外可以设置maxpenalty属性指定限定失败时间。
 
sinks – Space-separated list of sinks that are participating in the group
processor.type default The component type name, needs to be failover
processor.priority.<sinkName> – Priority value. <sinkName> must be one of the sink instances associated with the current sink group A higher priority value Sink gets activated earlier. A larger absolute value indicates higher priority
processor.maxpenalty 30000 The maximum backoff period for the failed Sink (in millis)
 
Example for agent named a1:
------
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
a1.sinkgroups.g1.processor.maxpenalty = 10000
------
 

4.Load balancing Sink Processor

Load balancing Sink processor 提供了在多个sink之间实现负载均衡的能力。
它维护了一个活动sink的索引列表。
它支持轮询 或 随机方式的负载均衡,默认值是轮询方式,可以通过配置指定。
也可以通过实现AbstractSinkSelector接口实现自定义的选择机制。
 
!processor.sinks – Space-separated list of sinks that are participating in the group
!processor.type default The component type name, needs to be load_balance
processor.backoff false Should failed sinks be backed off exponentially.
processor.selector round_robin Selection mechanism. Must be either round_robin, random or FQCN of custom class that inherits from AbstractSinkSelector
processor.selector.maxTimeOut 30000 Used by backoff selectors to limit exponential backoff (in milliseconds)
 
------
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

最新文章

  1. IE WebBrowser事件触发
  2. nba技能表
  3. 三部曲二(基本算法、动态规划、搜索)-1003-Lucky and Good Months by Gregorian Calendar
  4. Android Hotpatch系列之-项目介绍
  5. cotangent Laplacian
  6. spring - 自定义注解
  7. Android的Testing和Instrumentation
  8. simple_factory
  9. 今天工作中遇到的根据用户id取得产品大类和相关小类的问题
  10. nake_api_protect 请求保护器——防止请求被恶意刷
  11. 转载 CSDN 谈谈我对证券公司一些部门的理解(前、中、后台)
  12. JavaScript中B继承A的方法
  13. STL的map容器将第3个模板参数设为less_equal或greater_equal会怎样?
  14. Android 4 学习(18):搜索
  15. Shared libraries with GCC on Linux
  16. canvas练习单个矩形形变
  17. JavaSE-22 反射
  18. linux一些硬件详情查看的高级方法(网卡,内存,硬盘,cpu)
  19. SQL控制语句基础
  20. Catalan数的理解

热门文章

  1. SpringMVC全局异常统一处理
  2. 题解 【NOIP2016】魔法阵
  3. Codeforces Round #427 (Div. 2) [ C. Star sky ] [ D. Palindromic characteristics ] [ E. The penguin&#39;s game ]
  4. HTML5测试题整理Ⅰ
  5. javascript类型判断最佳实践
  6. Linux 打印可变参数日志
  7. Java集合框架之TreeSet
  8. getFieldDecorator用法(三)——Table增删改
  9. Vue_(组件)自定义指令
  10. Linux常用文本处理命令