一.內部工作流程
- 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(多路複用)。
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。(默認)