Spark2.1.0事件匯流排分析——ListenerBus的繼承體系
阿新 • • 發佈:2018-12-18
通過閱讀《Spark2.1.0之原始碼分析——事件匯流排》一文,理解了ListenerBus的定義後,本小節一起來看看有哪些類繼承了它。ListenerBus的類繼承體系如圖1所示。
從圖1中可以看到有三種ListenerBus的具體實現,分別為:
- SparkListenerBus:用於將SparkListenerEvent型別的事件投遞到SparkListenerInterface型別的監聽器;
- StreamingQueryListenerBus:用於將StreamingQueryListener.Event型別的事件投遞到StreamingQueryListener型別的監聽器,此外還會將StreamingQueryListener.Event型別的事件交給SparkListenerBus;
- StreamingListenerBus:用於將StreamingListenerEvent型別的事件投遞到StreamingListener型別的監聽器,此外還會將StreamingListenerEvent型別的事件交給SparkListenerBus。
SparkListenerBus也有兩種實現:
- LiveListenerBus:採用非同步執行緒將SparkListenerEvent型別的事件投遞到SparkListener型別的監聽器;
- ReplayListenerBus:用於從序列化的事件資料中重播事件。
有了對事件匯流排的這些介紹,讀者已經在巨集觀上對其有所認識。但是如果沒有具體的實現,ListenerBus本身也無法發揮作用。下一小節我們將選擇對SparkListenerBus從更加微觀的角度說明如何使用事件匯流排。
關於《Spark核心設計的藝術 架構設計與實現》
經過近一年的準備,《Spark核心設計的藝術 架構設計與實現》一書現已出版發行,圖書如圖:
紙質版售賣連結如下: