flume筆記(二)之Agent內部原理

一.內部工作流程

  • 1.Source 接收數據。
  • 2.Channel Processor 處理事件。
  • 3.將數據事件傳給鏈接器鏈 interceptor(攔截器),可以是一個或多個攔截器。
  • 4.經過攔截器後又把數據返回給 Channel Processor (Channel 處理器),然後再把這個數據傳給 Channel Selector(選擇器)。
  • 5.經過 Channel Selector(選擇器)的選擇策略處理之後,再將數據傳給 Channel列表。因爲可能有多個Channel 組成的Channel列表,所以要通過選擇器的選擇策略確定數據傳給哪一個Channel 。
  • 6.根據選擇器的選擇結果,將數據事件寫入相應的Channel中。
  • 7.Channel中的數據通過Sink Processor (Sink處理器) 的選擇策略再將數據傳給某一個sink。因爲一個Channel可以綁定多個sink,所以Channel中的數據到底給sink1、sink2···。

二. Channel Selector

首先ChannelSelector的作用是將Event 數據傳給哪一個Channel。其中它有兩種選擇策略,分別是 Replicating(複製)和 Multiplexing(多路複用)。

Replicating(複製):會將同一個 Event 數據發往所有的 Channel,每一個Channel都發一遍。(默認)
 

eg:a1.sources.r1.selector.type = replicating   (默認的寫不寫都可以)

 

▶ Multiplexing (多路複用):會根據相應的原則,將不同的 Event 發往不同的 Channel。

eg:a1.sources.r1.selector.type = multiplexing

三.Sink Processor

首先Sink Processor 共 有 三 種 類 型 , 分 別 是 DefaultSinkProcessor 、 LoadBalancingSinkProcessor 和 FailoverSinkProcessor

▶ DefaultSinkProcessor:對應的是單個的Sink。(默認)

▶ LoadBalancingSinkProcessor :對應的是Sink Group可以實現負載均衡的功能。
 
▶ FailoverSinkProcessor:對應的是Sink Group可以實現故障轉移的功能。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章