2017-06-27 111 views
0

我有一個要求,即將大型視頻文件從一個系統連續傳輸到另一個系統。卡夫卡適合傳輸大型媒體內容嗎?在選擇此解決方案之前,我必須考慮哪些因素?Kafka - 傳輸大型媒體內容

回答

1

您可以使用Kafka發送指向大型視頻文件的外部參考的消息。然後接收者可以從這個外部存儲器下載新文件(例如Amazon S3存儲桶)。這就是所謂的「索賠檢查模式」,這裏記錄了http://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html

但是,Kafka並不是爲了傳輸大型視頻文件而設計的。它不是一個託管文件傳輸工具。

+0

非常感謝,Hans –

1

您可以將文件分塊並將每個塊作爲消息放入Kafka,然後在另一端重新組合塊。默認Kafka消息大小爲1MB。這是可配置的。

+0

謝謝!根據你的經驗,按照這種方法傳輸視頻文件是否很常見? –

+0

只要確保所有塊都通過一個公共密鑰進入相同的主題分區,否則將失去所有塊的排序並損壞該文件。即使只有一個分區主題,您也需要將max.inflight.messages設置爲1,以避免因重試而無序發佈 –

+0

想一想,您仍然可以獲得重複的塊,因爲Kafka「至少一次」用於生產者。至少直到0.11出局。 –