Jedną z pierwszych rzeczy, o których myślę podczas korzystania z nowej usługi (takiej jak magazyn danych inny niż RDBMS lub kolejka komunikatów), jest: „Jak powinienem uporządkować dane?”.
Przeczytałem i obejrzałem kilka materiałów wprowadzających. W szczególności weźmy na przykład Kafka: Distributed Messaging System for Log Processing , który pisze:
- „Temat to kontener, z którym powiązane są wiadomości”
- „Najmniejszą jednostką paralelizmu jest podział tematu. Oznacza to, że wszystkie wiadomości, które… należą do określonej partycji tematu, będą konsumowane przez konsumenta w grupie konsumentów”.
Wiedząc o tym, jaki byłby dobry przykład ilustrujący, jak używać tematów i partycji? Kiedy coś powinno być tematem? Kiedy coś powinno być partycją?
Na przykład załóżmy, że moje dane (Clojure) wyglądają następująco:
{: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"}
Czy temat powinien być oparty na user-id
? viewed
? at
? A co z partycją?
Jak mam zdecydować?