基于Flink的电影数据实时统计平台(一):项目展示

一、项目介绍

  此项目是一个基于Flink的电影数据实时统计平台。

  项目前后端分离,前端项目为movie-web,后端项目为movie

  • movie-web:包含完整的Vue 2项目,在目录下使用npm run dev可直接运行
  • movie:集成了Maven,Spring Boot,Flink,JDBC,Kafka等技术的后端。包含三个入口类:
    • MovieApplication.java:启动Spring Boot程序,实现如下功能
      • 前端进行交互
      • MySQL查询数据
      • 将数据发送到Kafka
    • ServerApplication.javaFlink计算程序,用于从Kafka读取数据进行流计算,并将各项计算结果存储到MySQL
    • DataSimulator.java:评分数据模拟程序,可以完成两种任务:
      • init:初始化数据库
      • produce:模拟用户的评分行为,不断地产生大量的评分数据并发送到Kafka

  项目的用户接口:

  • 前台观影:
    • 电影首页:猜你喜欢(推荐系统)、最近热播(流计算)
    • 播放电影:播放电影(HTML video)、电影评分(Kafka
  • 数据查询:
    • 电影筛选(JDBCMySQL
    • 评分细查(JDBCMySQL
    • 可视化数据(流计算、JDBCMySQL
  • 用户中心
    • 用户信息

  由于时间原因,上述用户接口中的推荐系统和用户中心尚未实现,"猜你喜欢"目前使用的是随机伪推荐,用户中心页面则尚未构建。另外,播放电影使用的是HTML原生的video标签,性能较差,并且尚未实现后端的连接查询。

二、项目演示
2.1 前端观影/电影首页

  原本是个GIF,结果文件太大传不上来,具体演示还是查看上方的B站视频演示吧,这里只能放几张截图。主要功能是每日推荐以及最近热播的展示,每日推荐涉及推荐系统,由于时间原因尚未完善(课设deadline要到了。。。),最近热播则是每隔10s更新一次。
在这里插入图片描述
  10s后:
在这里插入图片描述

2.2 前端观影/播放电影

  此页面包含播放电影和电影评分功能。其中,播放电影由于不是此项目的重点所以做的比较随便,甚至没有连接后端。电影评分功能则需要提供电影ID、用户ID(没有做用户系统,所以无法自动获取)和评分数据。界面如下:
在这里插入图片描述

2.3 数据查询/电影筛选

  通过电影平均评分和评分次数对电影进行筛选,界面如下:
在这里插入图片描述

2.4 数据查询/评分细查

  细查每部电影的用户评分记录,界面如下:
在这里插入图片描述

2.5 数据查询/可视化数据

  提供了流计算多项统计指标结果的实时展示,包括最近10s内评分次数、历史评分次数变化、评分分布、Top榜等等。原本也是GIF,但文件过大无法上传,所以还是只能上截图,视频演示请移步B站

  “信息概览”Tab
在这里插入图片描述
  一段时间后:
在这里插入图片描述
  “电影数据”Tab
在这里插入图片描述
  一段时间后:
在这里插入图片描述

三、相关博客
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在这个科技高速发展的时代,经历了PC时代几乎人手一台电脑,随之衍生出站长这个概念;移动互联网时代几乎人手一部智能手机,智能手机一般都会安装很多应用,目前应用呈爆发式的增长;随着产业的不断深入发展,小程序的发展也日益壮大,应用涵盖各个领域;如今一个公司就可能有多个软件应用,对于软件开发商来说,急需一套分析系统帮助软件运营,如果单独开发一个分析系统去针对一个软件进行分析的话,成本会非常的大,这个成本包含开发成本以及以后的维护成本。为了解决了上述的问题,我们开发出了一套云产品:亿级动态数据统计分析系统,本系统可以支持所有的终端  (Web端、移动端、小程序端等 )数据统计,只要简单的使用sdk就可以接入我们的系统,软件开发商可以很轻松的对软件使用的情况进行监控,及时辅助公司对该软件的运营。该产品历经2年的实践,商业价值极高。本套案例是完全基于真实的产品进行开发和讲解的,同时对架构进行全面的升级,采用了全新的 Flink 架构+Node.js+Vue.js等,完全符合目前企业级的使用标准。对于本套课程在企业级应用的问题,可以提供全面的指导。Flink作为第四代大数据计算引擎,越来越多的企业在往Flink转换。Flink在功能性、容错性、性能方面都远远超过其他计算框架,兼顾高吞吐和低延时。Flink能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。也就是说同时支持流处理和批处理。Flink将流处理和批处理统一起来,也就是说作为流处理看待时输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。Flink技术特点1. 流处理特性支持高吞吐、低延迟、高性能的流处理支持带有事件时间的窗口(Window)操作支持有状态计算的Exactly-once语义支持高度灵活的窗口(Window)操作,支持基于time、count、session,以及data-driven的窗口操作支持具有Backpressure功能的持续流模型支持基于轻量级分布式快照(Snapshot)实现的容错一个运行时同时支持Batch on Streaming处理和Streaming处理Flink在JVM内部实现了自己的内存管理支持迭代计算支持程序自动优化:避免特定情况下Shuffle、排序等昂贵操作,中间结果有必要进行缓存2. API支持对Streaming数据类应用,提供DataStream API对批处理类应用,提供DataSet API(支持Java/Scala)3. Libraries支持支持机器学习(FlinkML)支持图分析(Gelly)支持关系数据处理(Table)支持复杂事件处理(CEP)4. 整合支持支持Flink on YARN支持HDFS支持来自Kafka的输入数据支持Apache HBase支持Hadoop程序支持Tachyon支持ElasticSearch支持RabbitMQ支持Apache Storm支持S3支持XtreemFS课程所涵盖的知识点包括:Flink、 Node.js、 Vue.js、 Kafka、Flume、Spring、SpringMVC、Dubbo、HDFS、Hbase、Highcharts等等  企业一线架构师讲授,代码在老师指导下可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值