我不得不機(機#1和機#2)之間卡夫卡集羣設置和配置之間傳輸文件如下:使用卡夫卡到兩個客戶端
1)每個機被配置成具有一個代理和一個動物園管理員正在運行。 2)服務器和動物園管理員屬性被配置爲具有多代理,多節點動物園管理員。
我現在有KafkaProducer和KafkaConsumer以下認識:
1)如果我從machine#1
發送文件到machine#2
,它的分解在使用一些默認的分隔符(LF或\ n)的線。 2)因此,如果機器#1發佈2個不同的文件到同一主題,這並不意味着machine#2
將收到這兩個文件。相反,每行都會附加到主題日誌分區,並且machine#2
將按照到達順序從日誌分區讀取它。即順序是不一樣的
file1-line1
file1-line2
end-of-file1
file2-line1
file2-line2
end-of-file2
,但它可能是這樣的: 文件1,一號線 文件2,一號線 文件1,2號線 結束文件1 文件2,2號線 結束-file2
假設以上是正確的(我很高興出錯),我相信簡單的Producer Consumer用法傳輸文件不是正確的方法(可能連接API是解決方案)。由於Kafka網站上說「Log Aggregation」是一個非常受歡迎的用例,所以我想知道是否有人使用Kafka演示文件交換示例的示例項目或網站。
P.S.我知道根據定義Connect API
說這是爲了在kafka和「其他」系統之間進行可靠的數據交換 - 但我不明白爲什麼其他系統不能有卡夫卡。所以我希望我的問題不必關注「其他」非卡夫卡系統。
非常感謝。我實際上正在研究PoC,這可能會導致將文件從一個卡夫卡生產者('machine#1')傳輸到其他卡夫卡,反之亦然。所以你說我必須使用連接器API?或者我需要使用Stream來代替? – ha9u63ar
@ ha9u63ar如果是雙向傳輸,則必須運行與生產者相同的實例以及連接到kafka集羣的消費者。您也可以使用連接器或簡單的Producer/Consumer客戶端 –