Kann einen Kafka-producer Themen erstellen und Partitionen?
derzeit bin ich Bewertung Sie verschiedene Messaging-Systeme.
Es ist eine Frage im Zusammenhang mit Apache Kafka die ich nicht beantworten konnte, mich.
Ist es möglich, für einen Kafka-producer zum erstellen von Themen und Partitionen (auf vorhandene Themen aswell) dynamisch?
Wenn ja, gibt es irgendwelche Nachteile, die mit ihm kommt?
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktualisiert:
Die kafka-broker hat eine Eigenschaft:
auto.erstellen.Themen.aktivieren
Wenn Sie auf wahr, wenn der Hersteller veröffentlicht eine Nachricht zu dem Thema mit dem neuen Namen Thema erstellt automatisch ein Thema für Sie.
Den Konfluent Team empfiehlt dies nicht zu tun, weil die explosion der Themen je nach Ihrer Umgebung können zu unhandlich, und das Thema wird bei der Erstellung immer die gleichen Standardeinstellungen zurückgesetzt, wenn erstellt. Es ist wichtig, um eine Replikations-Faktor von mindestens 3, um sicherzustellen, Haltbarkeit Ihrer Themen in die Falle eines Festplattenfehlers.
Von java können Sie ein Thema erstellen, wenn nötig. Ob es empfehlenswert ist oder nicht, hängt von den Einsatz-Fall. E. g. wenn Ihr Thema Namen ist eine Funktion der ankommenden Nutzdaten an die Hersteller, kann es nützlich sein. Folgende code-snippet, das funktioniert bei kafka 0.10.x
Hinweis: Es ist nur erlaubt, erhöhen keine. von Partitionen.
AdminUtils.createTopic()
Methode nimmt sowohl die Anzahl der Partitionen und Replikationen als argument. So können Sie diese entsprechend.Wenn Sie beginnen Ihre kafka-broker können Sie definieren eine Reihe von Eigenschaften in
conf/server.properties
- Datei. Eine der Eigenschaftauto.create.topics.enable
wenn Sie dies auf true (Standard) kafka erstellt automatisch ein Thema, wenn Sie senden eine Nachricht an eine nicht vorhandene Thema. Die Partitionsnummer wird definiert durch den Standard-Einstellungen in dieser Datei.Nachteile : soweit ich weiß, werden die Themen auf diese Weise erzeugt werden, haben immer die gleiche Standard-Einstellungen (Partitionen, Repliken ...).
Für alle messaging-system, ich glaube nicht, es ist empfohlen erstellen Thema/partition oder Warteschlange dynamisch durch den Produzenten.
Nutzen Sie Fall, können Sie wahrscheinlich verwenden Sie device_id als Ihre partition als Schlüssel zur Unterscheidung der Nachrichten.So können Sie mit einem Thema.