【发布时间】:2019-09-25 05:54:26
【问题描述】:
我正在尝试找出将我的数据扇出到单独的占位符以供其他处理对象使用的最佳方法
用例 我在 Kafka 主题中接收到几个脚本(约 2000 支股票)的股票数据。我希望能够在所有脚本上单独运行 KPI(KPI 就像应用于输入数据以获取 KPI 值的公式)。
我能想到的选项
-
根据脚本名称扇出主题 在源主题上接收到的所有内容都通过脚本名称发送到不同的主题。这里的问题是,这将创建大量主题,管理它们和跟踪内容成为一项乏味的任务。
-
将所有分时数据保存在单个主题中,并使用 CustomPartitioner 按脚本名称对其进行分区。 这有助于保持主题数量较少且系统易于管理。但是所有消费者都需要丢弃大量记录来获取导致延迟的数据块。 (换句话说,想要在 Apple Tick 上运行 KPI 的作业需要订阅公共主题并丢弃所有其他脚本中的记号)
如果有更好的方法,请告诉我,如果没有,请告诉我选择哪一种。 另一个重要的考虑因素是每个 KPI 都会将数据写回 Kafka 主题,以供规则引擎进一步使用
【问题讨论】:
-
你可以让消费者从静态分配的分区中读取,所以我不确定我是否理解关于丢弃数据以获得“他们的块”的论点
-
@cricket_007 为了清楚起见更新了问题
-
但同样,如果您只订阅包含苹果刻度的分区,您不会丢弃任何东西
-
情况就是这样 1.In case 2 所有刻度都在同一个主题中,只是不同的分区。所以如果我订阅那个主题,我会得到所有的滴答声
标签: apache-kafka streaming apache-kafka-streams