【发布时间】:2017-08-15 17:42:36
【问题描述】:
我有一个典型的 samza 任务,它使用 2 个主题:data 和 config,并将来自 config 的消息作为本地状态存储在 Rocksdb 中,以检查来自 data 的消息是否正常。
如果这两个主题中的每一个都只有一个分区,则此任务可以正常工作。一旦我将data 分成十个分区并且config 仍然是一个分区,情况就发生了变化。默认情况下,samza 会创建 10 个任务来消费 data 主题的分区 0 ~ 9,并且只有任务 0 消费 config 主题:
task[0] -> config, data[0]
task[1] -> data[1]
...
task[9] -> data[9]
似乎每个任务都是用自己的rocksdb实例初始化的,所以只有task[0]将所有配置数据存储在它的rocksdb实例中,task[1~9]没有配置数据,因此无法找到它的配置信息传入的数据。
我的预期是每个任务都使用来自其数据分区和配置流的消息,如下所示:
task[0] -> config, data[0]
task[1] -> config, data[1]
...
task[9] -> config, data[9]
有什么办法可以做到吗?
【问题讨论】:
标签: apache-kafka partition apache-samza