apache-kafka - 是否可以在 Kakfa Streams 中使用相同的状态存储来创建“快速”队列和“慢速”队列?
问题描述
我们有一系列对消息执行操作的 Kafka Streams 应用程序。这些应用程序有状态存储。
客户记录通过应用程序提供,并通过使用状态存储中的数据进行丰富。状态存储是从其他来源更新的。
我们的系统有两种类型的异步“入口点”。
Batch:批量 接收大量记录,读入流中进行处理
API: 单个记录被送入要处理的流中,并更新可以通过 API 查询的投资组合(但仅在准备好时)
要求: 我们希望允许同步 API 调用。即客户端可以通过API发送消息,它将通过流处理并同步返回(并且显然足够快以成为API)。这不适用于当前系统,因为显然单个消息可能会“卡”在大批量后面并需要一段时间才能处理。
我们尝试了什么: 我们希望做的一个想法是有一个快速和慢速队列。相同的应用程序,但它们的两个部署。我们可以做到这一点,但问题是每个应用程序部署都需要自己的状态存储,这意味着我们将所有数据复制到多个状态存储中,即使它们是相同的主题(大量数据使这变得不那么明智且成本更高) )
理想情况下,我们可以使用同一个状态存储来部署同一个应用程序的两个部署,但我们认为这在 Kafka 流中是不可能的?
如果您将状态存储视为数据库表,那么从逻辑上讲,我不明白为什么两个应用程序不能访问同一个“表”,但也许我在这里遗漏了一些基本的东西。
问题: 我们如何使用同一系统解决“批量”和“实时”问题?如果答案是……“你不应该”,请给出在我看来这是有道理的理由。谢谢你的帮助!
解决方案
推荐阅读
- python - 如何将矩阵的列(NOT NUMPY)移动到最后一列?
- python - 尝试安装时 Anaconda3 opencv 与 hdf5 冲突
- python - 我的自定义 mobilenet 训练模型未显示任何结果。我究竟做错了什么?
- javascript - 当所有人都断开连接时,如何删除临时语音通道?
- django - 无法显示图像django
- python - 如何修复:创建 tensorflow 文本摘要时出现“google.protobuf.message.DecodeError: Error parsing message”
- javascript - 使用 Debounced Scroll 事件固定元素以提高性能
- postgresql - 是否可以通过添加更多索引来加速此查询?
- php - PHP:如何只替换=而不替换<=和>=
- delphi - 构造函数在初始化类变量时抛出 eaccessviolation