kafka+spark+redis可否用来构建实时推荐引擎1、spark streaming作为消费者,实时的从kafka中获取数据进行计算 。计算结果保存至redis,供实时推荐使用 。flume+kafka+spark+redis是实时数据收集与计算的一套经典架构 。
2、保证你上层的Framework/Application可以移植Spark是个典型,他可以跑在Mesos上,也可以跑在Yarn上,还可以跑在自己上面(Standalone),实时上 , 泡在Yarn上的,以及跑Standalone模式的,都挺多的 。
3、数据到Kafka后,一路数据同步到HDFS,用于离线统计 。另一路用于实时计算 。由于今天时间有限,接下来只能和大家分享下实时计算的一些经验 。实时计算我们选择的Spark Streaming 。
4、kafka与redis的区别: redis消息推送(基于分布式 pub/sub)多用于实时性较高的消息推送,并不保证可靠 。其他的mq和kafka保证可靠但有一些延迟(非实时系统没有保证延迟) 。
Redis、Kafka或RabbitMQ:哪个作为微服务消息代理最合适?我们介绍了RabbitMQ,Kafka和Redis的一些特征 。这三种动物都是它们的类别,但是如上所述,它们的运行方式大不相同 。这是我们建议正确的消息代理根据不同用例使用的建议 。
Kafka和RabbitMq一样是通用意图消息代理,他们都是以分布式部署为目的 。但是他们对消息语义模型的定义的假设是非常不同的 。我对AMQP 更成熟这个论点是持怀疑态度的 。让我们用事实说话来看看用什么解决方案来解决你的问题 。
kafka是个日志处理缓冲组件,在大数据信息处理中使用 。和传统的消息队列相比较简化了队列结构和功能,以流形式处理存储(持久化)消息(主要是日志) 。
【从kafka取出数据存到redis中 Kafka消息保存到redis】综上所述: 一般公司会利用kafka收集一些日志之类的消息,因为日志一般量特别大,即使丢几条数据也没事,并且要求吞吐量也高,一般就是收发消息,不需要太多的功能,所以kafka非常适合这个场景 。
kafka与redis的区别有哪些1、kafka是个日志处理缓冲组件,在大数据信息处理中使用 。和传统的消息队列相比较简化了队列结构和功能 , 以流形式处理存储(持久化)消息(主要是日志) 。
2、我们介绍了RabbitMQ , Kafka和Redis的一些特征 。这三种动物都是它们的类别 , 但是如上所述,它们的运行方式大不相同 。这是我们建议正确的消息代理根据不同用例使用的建议 。
3、数据库应用场景不同:Redis主要用于缓存、队列、计数器等,而关系型数据库主要用于存储关系型数据 。数据库的处理方式不同:Redis可以对数据进行持久化,包括RDB快照和AOF日志两种方式 , 保证数据不丢失 。
Kafka,Mq和Redis作为消息队列使用kafka是个日志处理缓冲组件,在大数据信息处理中使用 。和传统的消息队列相比较简化了队列结构和功能,以流形式处理存储(持久化)消息(主要是日志) 。
RabbitMQ于2007年发布,是最早创建的常见消息代理之一 。它是一个开放源代码,通过实现高级消息队列协议(AMQP)通过点对点和pub-sub方法传递消息 。它旨在支持复杂的路由逻辑 。
虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用 。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间 。
其他的mq和kafka保证可靠但有一些延迟(非实时系统没有保证延迟) 。redis-pub/sub断电就清空,而使用redis-list作为消息推送虽然有持久化,但是又太弱智,也并非完全可靠不会丢 。
redis只是提供一个高性能的、原子操作内存键值对,具有高速访问能力 , 可用做消息队列的存储,但是不具备消息队列的任何功能和逻辑,要作为消息队列来实现的话,功能和逻辑要通过上层应用自己实现 。我们以RabbitMQ为例介绍 。
Redis虽然可以用作消息队列,但其各项功能显示不如单一实现的消息队列,所以通常情况下并不使用它的消息队列功能;Kafka的性能要优于RabbitMQ,通常在日志采集,数据采集时使用较多,所以这里我们采用Kafka实现消息队列功能 。
推荐阅读
- 如何应对DNS服务器遭受攻击的情况? dns服务器被攻击怎么办
- 如何找到服务器的地址、帐号和密码? 怎么查服务器地址帐号密码
- 如何处理联通连接服务器失败的问题? 联通链接服务器失败怎么办
- 如何查看服务器有没有被黑 如何查看服务器有没有redis