首页 > 解决方案 > 使用 Apache Kafka 进行流式分析

问题描述

我们正在从设备(Android、iOS)收集流数据。数据流为,websocket -> logstash -> kafka -> spark -> cassandra。内存为 16 GB。我们的应用程序基于 OTT 平台,当视频流式传输时,它会将事件发送到 kafka 以进行分析。目前的情况是,并行播放 4 或 5 个视频时,内存会很快溢出。

可能是什么问题?是不是配置错误?对于我们的要求,还有其他更好的方法吗?

标签: apache-sparkmemory-managementcassandraapache-kafka

解决方案


我会用一个广泛的答案来回答你的广泛问题。

Logstash / Kafka / Spark / Cassandra 是“正确”的架构吗?

这种方法没有什么特别错误的。这取决于您正在执行的处理,以及您将其登陆到 Cassandra 的原因。您会发现很多人采用这种方法,而其他人可能使用不同的流处理,例如 Kafka Streams,以及并不总是使用数据存储(因为 Apache Kafka 持久化数据) - 取决于之后使用数据的内容。

使用这种架构,我的系统能否一次处理超过 10,000 个用户活动?

是的。不,这取决于太多因素,无法给出答案。10,000 名用户使用少量数据执行简单活动,这与 10,000 名用户需要对大量数据进行复杂处理有很大不同。

获得答案并总体评估您的架构选择的唯一方法是在增加 [模拟] 用户数量时分析系统的行为。是否出现了表明需要更大硬件规模或什至不同技术选择的特定瓶颈。


推荐阅读