【问题标题】:Streaming analytics using Apache Kafka使用 Apache Kafka 进行流式分析
【发布时间】:2019-07-27 16:48:15
【问题描述】:

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

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

【问题讨论】:

  • 你在一台 16GB 的机器上运行这一切?
  • 是的。最初我们使用单个 16 GB,后来升级到 32 GB AWS
  • 所以Kafka、Spark、Cassandra等都是分布式系统。您可以扩展它们以获得弹性(我希望您已经在考虑!),还可以根据需要扩展性能/吞吐量。
  • 我们现在在不同的服务器上运行 kafka 和 spark 流。所以kafka现在稳定了。我的疑问是,我是否遵循正确的架构?使用此架构,我的系统能否一次处理超过 10,000 个用户活动?

标签: apache-spark memory-management cassandra apache-kafka


【解决方案1】:

我会用宽泛的答案来回答您的宽泛问题。

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

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

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

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

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

【讨论】:

  • 非常感谢。我们将在测试环境中对其进行分析。
猜你喜欢
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多