2017-06-27 1 views
0

Ich habe die Anforderung, große Videodateien kontinuierlich von einem System zum anderen zu übertragen. Ist Kafka geeignet, große Medieninhalte zu übertragen? Was sind die Überlegungen, die ich berücksichtigen muss, bevor ich mich für diese Lösung entscheide?Kafka - Übertragung großer Medieninhalte

Antwort

1

Sie könnten Kafka verwenden, um Nachrichten zu senden, die auf einen externen Verweis auf die großen Videodateien zeigen. Dann kann der Empfänger die neue Datei von diesem externen Speicher herunterladen (wie zum Beispiel Amazon S3-Buckets). Dies nennt man das "Claim Check Pattern" und ist hier dokumentiert. http://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html

Allerdings ist Kafka nicht dafür ausgelegt, die großen Videodateien selbst zu transportieren. Es ist kein verwaltetes Dateiübertragungs-Tool.

+0

Vielen Dank, Hans –

1

Sie könnten die Dateien aufteilen und jeden Chunk als Nachricht in Kafka schreiben und dann die Chunks am anderen Ende rekombinieren. Standardmäßig ist die Kafka-Nachrichtengröße 1 MB. Dies ist konfigurierbar.

+0

Vielen Dank! Ist es aufgrund Ihrer Erfahrung üblich, diesen Ansatz für die Übertragung von Videodateien zu befolgen? –

+0

Stellen Sie nur sicher, dass alle Chunks zur gleichen Themenpartition (über einen gemeinsamen Schlüssel) gehen oder dass Sie die Reihenfolge aller Chunks verlieren und die Datei beschädigen. Auch bei einem einzelnen Partition Thema müssten Sie auch max.inflight.messages auf 1 setzen, um eine Out-of-Order-Veröffentlichung aufgrund von Wiederholungen zu vermeiden –

+0

Kommen Sie, wenn Sie daran denken, könnten Sie immer noch doppelte Stücke bekommen, da Kafka "mindestens einmal" ist Produzenten. Zumindest bis 0.11 ist out. –