【发布时间】:2013-06-16 19:59:29
【问题描述】:
在使用新服务(例如非 RDBMS 数据存储或消息队列)时,我首先想到的事情之一是:“我应该如何构建我的数据?”。
我已经阅读并观看了一些介绍性材料。特别是,以Kafka: a Distributed Messaging System for Log Processing 为例,它写道:
- “主题是与消息关联的容器”
- “并行度的最小单位是主题的分区。这意味着...属于某个主题的特定分区的所有消息都将被消费者组中的消费者消费。”
知道了这一点,什么是说明如何使用主题和分区的好例子?什么时候应该成为话题?什么时候应该是一个分区?
例如,假设我的 (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?分区呢?
我该如何决定?
【问题讨论】:
-
奇怪的是这个话题和分区,但不一定是其中数据的演变。如果您想将用户代理或标头附加到那些“用户视图”事件怎么办?您如何发展并以某种方式与下游消费者沟通?
-
@OneCricketeer 对我来说听起来像是一个单独的问题 :) 去做吧......
标签: apache-kafka apache-zookeeper data-modeling