我们正在从设备(android、ios)收集流数据。数据流是websocket->logstash->kafka->spark->cassandra。ram为16 gb。我们的应用程序是基于ott平台,当一个视频流,它将发送事件到Kafka分析的目的。目前的情况是,在并行播放4到5个视频时,内存会很快溢出。有什么问题吗?有没有配置错误?有没有其他更好的方法来满足我们的要求?
yhuiod9q1#
我将以宽泛的回答回答你的宽泛问题。logstash/kafka/spark/cassandra是“正确的”架构吗?这种方法没有什么特别的问题。这取决于你在做什么,以及为什么要把它送到Cassandra。您会发现很多人采用这种方法,而其他人可能会使用不同的流处理(例如kafka流),也可能不总是使用数据存储(因为apache kafka会持久化数据),这取决于之后消耗数据的内容。使用这种体系结构,我的系统一次能处理超过10000个用户活动吗?对。不,这取决于,有太多的因素无法给出答案。10000个用户用少量的数据做一个简单的活动与10000个用户需要对大量数据进行复杂的处理有很大的不同。得到答案并评估总体架构选择的唯一方法是在增加[模拟]用户数量时分析系统的行为。是否出现了特定的瓶颈,表明需要更大的硬件规模,甚至不同的技术选择。
1条答案
按热度按时间yhuiod9q1#
我将以宽泛的回答回答你的宽泛问题。
logstash/kafka/spark/cassandra是“正确的”架构吗?
这种方法没有什么特别的问题。这取决于你在做什么,以及为什么要把它送到Cassandra。您会发现很多人采用这种方法,而其他人可能会使用不同的流处理(例如kafka流),也可能不总是使用数据存储(因为apache kafka会持久化数据),这取决于之后消耗数据的内容。
使用这种体系结构,我的系统一次能处理超过10000个用户活动吗?
对。不,这取决于,有太多的因素无法给出答案。10000个用户用少量的数据做一个简单的活动与10000个用户需要对大量数据进行复杂的处理有很大的不同。
得到答案并评估总体架构选择的唯一方法是在增加[模拟]用户数量时分析系统的行为。是否出现了特定的瓶颈,表明需要更大的硬件规模,甚至不同的技术选择。