基于Flink的电影数据实时统计平台(二):项目结构

一、开发环境

  此项目的开发环境如下:

  • macOS Big Sur(不影响)
  • IntelliJ IDEA
  • jdk 1.8.0_271
  • Maven 3.6.1
  • Flink 1.12.2
  • Kafka 2.0.0
  • MySQL 5.1.49
  • Vue Cli 4.5.12
  • Vue 2.5.2
  • Element-UI 2.15.1
二、相关技术

  项目以Vue + Spring Boot的形式实现前后端的分离。同时,前端使用Element-UI + Echarts + Vue实现页面的绘制,使用Vue router实现页面的跳转,使用Ajax实现数据的请求与动态修改。后端通过Maven进行包的管理,并整体使用Spring Boot框架进行搭建。将Kafka作为数据源,使用Flink进行流数据的实时处理,并通过JDBC将结果存入MySQL数据库。然后项目通过间隔性地访问数据库实现数据的动态查询。图示如下:

在这里插入图片描述

三、系统架构

  项目的可运行程序主要分为三个部分:VueSpring Boot项目Client以及Flink项目ServerVue项目作为分离的前端与用户进行交互,并且可以向Client发送和请求数据。Client通过ControllerWeb进行交互,将Web发送的数据发送到Kafka,并在MySQL中查询Web所请求的数据。Server以流的形式从Kafka接收数据,并通过Flink API进行实时的计算并将计算结果存入MySQL的不同表中供Client查询。图示如下:

在这里插入图片描述

四、分包解释

  项目主目录cn.edu.neu.movie下除了三个入口类还分有五个包:

  • bean:数据库查询数据的封装类
    • web:只供前端使用的数据封装类
  • controller:用于连接前端并与前端交互的控制器类
  • service:业务类
    • clientClient程序的相关业务接口
      • implClient程序相关业务的具体实现
    • serverServer程序的相关业务实现
    • sim:用于模拟生产评分数据相关业务实现
  • dao:数据库的交互类
  • util:工具类
五、相关博客
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值