2015-11-23 98 views
0

在水槽中,我有卡夫卡通道,可以讀取和寫入數據。 如果我用Avro源代碼和Avro接收器替換Kafka源代碼和Kafka接收器,那麼讀寫數據的性能與Kafka頻道的性能有什麼區別?卡夫卡源vs Avro源使用水槽讀取和寫入數據到卡夫卡頻道

在我看來,通過用Avro-source替代Kafka-source,我將無法從Kafka經紀人的多個分區並行讀取數據,因爲在Avro-source的情況下沒有指定消費者組。如果我錯了,請糾正我。

回答

0

在Flume中,Avro RPC源綁定到網絡接口的指定TCP端口,因此只有一臺運行在單臺機器上的Flume代理的一個Avro源可以接收發送到此端口的事件。

Avro源代表將兩個或更多Flume代理連接在一起:一個或多個Avro接收器連接到單個Avro源。

正如您所指出的那樣,使用Kafka作爲數據源可以讓多個消費羣體接收事件。然而,我使用Flume 1.6.0的經驗是,通過Avro RPC而不是通過Kafka將事件從一個Flume代理推送到另一個遠程主機上的事件會更快。

所以我結束了以下設置針對日誌數據收集:

[水槽劑遠程收集節點上] =阿夫羅RPC =>[水槽劑在中央集羣] =卡夫卡=>[中央集羣中的多個消費羣體]

這樣,我得到了更好的日誌消化和處理吞吐量,並且還可以加密和壓縮遠程站點和中央集羣之間的日誌數據。當Flume在未來的版本中增加對由Kafka 0.9.0引入的新協議的支持時,這可能會發生變化,可能會使Kafka作爲具有遠程數據收集節點的中央羣集的前端界面更加可用(請參閱here)。