Одна из первых вещей, о которых я думаю при использовании новой службы (например, хранилище данных, отличных от РСУБД или очереди сообщений), это: "Как мне структурировать данные?".
Я читал и смотрел некоторые вводные материалы. В частности, возьмите, например, Kafka: система распределенных сообщений для обработки журналов, которая пишет:
- "a Тема - это контейнер, с которым связаны сообщения"
- "наименьшая единица parallelism - это раздел темы. Это означает, что все сообщения, которые... относятся к определенному разделу темы, будут потребляться потребителем в группе потребителей."
Зная это, что будет хорошим примером, иллюстрирующим использование тем и разделов? Когда что-то должно быть темой? Когда что-то должно быть разделом?
В качестве примера предположим, что мои данные (Clojure) выглядят следующим образом:
{: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"}
Если тема будет основана на user-id
? viewed
? at
? Как насчет раздела?
Как мне решить?