使用新服务(例如非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
?分区呢?
我该如何决定?