天天看點

Flume Sink Processor

SinkGroup允許組織多個sink到一個實體上。SinkProcessors 能夠提供在組内所有sink之間實作負載均衡的能力。而且在失敗的情況下能夠進行故障轉移。

sinks: 空格分隔的多個sink

processor.type:default|failover|load_balance

一 DefaultSink Processor

隻允許接收單個sink,不強制使用者為sink建立processor.

二FailoverSink Processor

它維護着一個sink的優先級清單,保證event隻要有效就會被處理。

failover機制工作原理把失敗的sinks放到一個池裡,然後給他配置設定一個冷凍期。一旦一個event被成功發送,重新會把這個sink放入live池子裡。

對于這個配置,我們要設定sinkgroups processor為failover,為每一個單獨的sink設定優先級,另外failover的上限可以通過maxpenalty屬性設定。

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

三Loadbalancing Sink Processor

LoadBalancing Sink Processor 提供另一種可以在多個sink之間平衡負載的能力。

實作支援通過round_robin(輪詢)或者random(随機)參數來實作負載分發,預設情況下使用round_robin。

processor.sinks:多個空格分割的sink

processor.type:load_balance

processor.backoff:

processor.selector:round_robin|random|繼承AbstractSinkSelector的類

processor.selector.maxTimeOut:

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