Eines der ersten Dinge, an die ich denke, wenn ich einen neuen Dienst verwende (z. B. einen Nicht-RDBMS-Datenspeicher oder eine Nachrichtenwarteschlange), ist: "Wie soll ich meine Daten strukturieren?".
Ich habe einige Einführungsmaterialien gelesen und gesehen. Nehmen wir zum Beispiel Kafka: ein verteiltes Nachrichtensystem für die Protokollverarbeitung , das schreibt:
- "Ein Thema ist der Container, dem Nachrichten zugeordnet sind."
- "Die kleinste Einheit der Parallelität ist die Partition eines Themas. Dies bedeutet, dass alle Nachrichten, die ... zu einer bestimmten Partition eines Themas gehören, von einem Verbraucher in einer Verbrauchergruppe konsumiert werden."
Wenn Sie dies wissen, was wäre ein gutes Beispiel für die Verwendung von Themen und Partitionen? Wann sollte etwas ein Thema sein? Wann sollte etwas eine Partition sein?
Nehmen wir als Beispiel an, meine (Clojure-) Daten sehen folgendermaßen aus:
{:user-id 101 :viewed "/page1.html" :at #inst "2013-04-12T23:20:50.22Z"}
{:user-id 102 :viewed "/page2.html" :at #inst "2013-04-12T23:20:55.50Z"}
Sollte das Thema darauf basieren user-id
? viewed
? at
? Was ist mit der Partition?
Wie entscheide ich mich?