Receiver VS Direct區別

1. 拉取數據的方式

Receiver採用kafka高級api,一次性拉取固定時間的數據後再進行處理,這可能造成一個問題:拉取的數據過多,放不下怎麼辦?

Direct採用kafka低級api,直接連接到kafka的分區,rdd中的分區與kafka中的分區是一一對應的,他是一邊拉取數據,一邊處理數據,到達設置的時間間隔後,就作爲一個批次進行計算結果。

2. 可靠性保證

Direct可以提供一次且緊一次語義。

Receiver要保證數據不丟失,需要WAL,提供至少一次的語義。

3. 高峯數據量過大的處理

Receiver方式只能手動設置最大接收速率,不能自動調節數據接收速率。

Direct可以使用反壓機制自動調節數據接收速率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章