2016-09-11 2 views
0

Ich habe zwei Ereignisse PingData und OrderEvent (von zwei verschiedenen Herstellern kommen) und beide gehen einige Änderungen auf derselben Ressource tun (db, Cache)Können wir zwei unterschiedliche Topologie für gleiche Themen in kafka

Was ist der ideale Weg, damit umzugehen, ich bin in der Lage zu denken, zwei Möglichkeiten folgen 1) einzelne Themen und Topologie und dann auf der Grundlage einiger Daten filtern 2) Zwei verschiedene Themen und zwei Topologien, die einige Operationen ausführen

Bitte führen Sie mich mit der richtigen Vorgehensweise!

Antwort

0

Die wirkliche Frage hier ist, wie miteinander verwandt Ihre zwei Quellen sind. Möchten Sie strenge Bestellgarantien für diese 2 Datenströme haben? Wenn dies der Fall ist, starten Sie ein einzelnes Thema mit nur einer Partition und lassen Sie einen Verbraucher davon konsumieren.

Nun, dies ist kein sehr gutes Setup, da es wenig/keine Parallelität gibt. Wenn Ihre Daten eine schlüsselbasierte Partitionierung haben, können Sie sie hashen und dann mehrere Partitionen pro Thema haben. Jetzt haben Sie Bestellgarantien für eine einzelne Partition, aber keine solche Garantie über Partitionen hinweg. Aber wenn sie logisch getrennte Einheiten sind, glaube ich, dass es dir gut gehen sollte.

Wenn zwischen den beiden Datasets, die Sie erstellen, keine Abhängigkeit besteht (ich meine keine strengen Sortierbedingungen), sollten Sie sie idealerweise in zwei verschiedene logische Namespaces aufteilen, indem Sie zwei Zweige erstellen.

Der wichtigste Punkt zu erinnern ist, dass "Thema ist nur eine logische Einheit in Kafka". In Bezug auf die Leistung ist ein einzelnes Thema mit 2 Partitionen das gleiche wie 2 Themen mit je 1 Partition.

Viel hängt daher davon ab, wie Sie Ihr System und die Beziehung zwischen den beiden Sets gestalten möchten.

Verwandte Themen