【发布时间】:2022-01-26 02:46:07
【问题描述】:
我目前正在研究使用哪种流处理技术。到目前为止,我已经研究了消息队列技术和流框架。我现在倾向于使用 Apache Kafka 或 Google Pub/Sub。
我的要求:
- 实时传递、阅读和处理消息/事件。
- 消息/事件的持久性。
- 能够实时过滤消息/事件,而无需阅读整个主题。例如:如果我有一个名为“详细信息”的主题,我希望能够从该主题中过滤掉事件属性等于某个值的消息/事件。
- 能够查看某个主题或队列的生产者是否已完成。
- 能够根据事件中等于某个值的属性删除主题中的消息/事件。
- 消息/事件中的排序。
我的问题是:什么是这些用例的最佳框架/技术?从我目前所读到的内容来看,Kafka 没有为主题中的消息/事件提供开箱即用的过滤方法,而 Google Pub/Sub 确实有一种过滤方法。
欢迎任何建议和经验。
【问题讨论】:
-
队列几乎从来没有使用任何技术的消费过滤器。但是,如果您正确分片/分区,则无需阅读整个主题。另外,如果您需要持久性、随机删除、和搜索功能,您将需要一个带有索引的实际数据库。您可以使用 Pinot/Druid/Couchbase 与 Kafka 摄取
-
@OneCricketeer 我想防止在数据库或文档存储中持久化。目前我有一个服务,它执行一些操作并将每一行存储在 MongoDB 中,前端由 ChangeStreams 更新。正如预期的那样,这很慢,这就是为什么我正在考虑使用像 Kafka 这样的流式处理框架。
-
如果你必须更快地更新前端,你需要 websockets,而不是 Kafka
标签: apache-kafka google-cloud-pubsub