Одна из первых вещей, о которых я думаю, когда использую новый сервис (например, хранилище данных без RDBMS или очередь сообщений), это: «Как мне структурировать мои данные?».
Я читал и смотрел некоторые вводные материалы. В частности, возьмем, например, Kafka: распределенную систему обмена сообщениями для обработки журналов , которая пишет:
- «Тема - это контейнер, с которым связаны сообщения»
- «Наименьшей единицей параллелизма является раздел темы. Это означает, что все сообщения, принадлежащие определенному разделу темы, будут потребляться потребителем в группе потребителей».
Зная это, что будет хорошим примером, который иллюстрирует, как использовать темы и разделы? Когда что-то должно быть темой? Когда что-то должно быть разделом?
В качестве примера, скажем, мои (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
? А как насчет раздела?
Как мне решить?