首页 > 解决方案 > 物联网流式消费架构

问题描述

我在现场有一组物联网传感器,可产生 50,000 条消息/秒。我能够成功接收这些数据,对其进行转换并将其存储在传出的 Kafka 主题中。我的消费者有兴趣通过 HTTP API 使用这些消息。在这个执行阶段,我面临着一个架构决策,我希望在这个论坛上得到解答。这应该是推流还是拉流?各有什么优缺点?我的数据非常小,或多或少不会改变结构。

另外,有谁知道如何通过流式 API 在 Kafka 中公开消息?

标签: httpapache-kafka

解决方案


要以流方式在 Kafka 中公开消息,您可以查看Kafka Streams。关于它所服务的用例的一篇很好的文章在这里。有了这个,您可以将 Kafka 中的消息作为实时流使用,并将其推送到外部服务、数据库等。

关于使用拉取或推送的架构决策,这取决于该数据的下游消费者是什么以及他们希望如何使用它。例如,您在 Kafka 代理中接收到的消息被转换/聚合等,然后您有流式消费者将其写入作为 REST 服务(通过应用程序)公开的数据库。现在,这些数据的最终消费者可以将此 API 用于报告/显示等目的。如果您对最终消费者有实时交付要求,您可能会使用 websockets 等而不是轮询。


推荐阅读