一執行流程圖
1⃣️:Source 接受數據
2⃣️:Channel Processor 處理 Event
3⃣️:Channel Processor 將 Event 傳遞給 interceptor鏈對 Event 進行過濾操作
4⃣️:過濾完之後再把 Event 發送回 Channel Prodessor
5⃣️:Channel Processor把 Event 發送給Channel selectors
6⃣️:Channel selector返回Event 屬於哪個Channel
7⃣️:根據第6步返回的結果,將Event發送到指定的Channel
8⃣️:SinkProcessor從Channel中拉去數據
9⃣️:最後把數據Sink出去
二 事務
2.1 推送事務流程
doPut
: 把批數據寫入到臨時緩衝區putList
doCommit
: 檢查Channel容量是否足夠,如果容量足夠則把putList裏的數據發送到Channel
doRollBack
:如果Channel容量不夠,則把數據回滾到putList
2.2 拉取事務流程
doTake
:把數據讀取到臨時緩衝區takeList
doCommit
:檢查數據是否發送成功,成功的話,則把event從takeList中移除
doRollBack
:如何發送失敗,則把takeList的數據回滾數據到Channel