我在做一个实时商业智能项目,我正在使用弹性堆栈spark流媒体和kafka?但是我想知道我是否可以用redis而不是kafka,因为redis似乎是一个内存中的野兽,可以实时转发数据,我很困惑有谁能帮我选择合适的技术,我之前在这里发布了一个问题,实时bi的架构是什么,他们建议我下一个架构:logstash=>kafka=>spark streaming=>elasticsearch=>kibana谢谢你的回答
我在做一个实时商业智能项目,我正在使用弹性堆栈spark流媒体和kafka?但是我想知道我是否可以用redis而不是kafka,因为redis似乎是一个内存中的野兽,可以实时转发数据,我很困惑有谁能帮我选择合适的技术,我之前在这里发布了一个问题,实时bi的架构是什么,他们建议我下一个架构:logstash=>kafka=>spark streaming=>elasticsearch=>kibana谢谢你的回答
1条答案
按热度按时间mcvgt66p1#
简言之,如果数据量大,需要重用数据,则应首先考虑kafka,否则在处理延迟最小的实时消息处理时,应首先尝试redis。
您可以尝试redis,因为redis可以支持生产elk(elasticsearch、logstash、kibana)堆栈。redis是一个内存存储。这意味着它使用主内存进行存储和处理,这使得它比基于磁盘的kafka快得多。redis内存存储的唯一问题是我们不能长时间存储大量数据。由于内存中的主内存比磁盘小,我们必须定期清除它,自动将数据从内存移到磁盘,并为新数据腾出空间。此外,redis不像kafka那样有并行性的概念,多个进程可以同时使用数据。
具有redis的体系结构-:logstash(shipper)->redis<-logstash(indexer)->ElasticSearch->kibana。redis还有缓冲功能,以防logstash(indexer)关闭。
要知道,如何将redis与logstash和elastic结合使用,这里有一个很好的解释:https://ianunruh.com/2014/05/monitor-everything-part-2.html
为了收集关于redis和kafka的知识,你可以查看以下链接:https://logz.io/blog/kafka-vs-redis/https://www.quora.com/what-are-the-advantages-of-kafka-over-redis-for-pub-sub