(一)、项目介绍
1.项目背景介绍
(1).基本介绍
随着智能手机的普及,人们更加习惯于通过手机来看新闻。由于生活节奏的加快,很多人只能利用碎片时间来获取信息,因此,对于移动资讯客户端的需求也越来越高。黑马头条项目正是在这样背景下开发出来。黑马头条项目采用当下火热的微服务+大数据技术
架构实现。本项目主要着手于获取最新最热新闻资讯,通过大数据分析用户喜好精确推送咨询新闻
。
(2).业务说明
功能架构图:
(3).项目术语介绍
- 项目:泛指黑马头条整个项目或某一项目模块
- 工程:泛指黑马头条某一项目的源码工程
- 用户:泛指黑马头条APP用户端用户
- 自媒体人:泛指通过黑马自媒体系统发送文章的用户
- 管理员:泛指黑马头条管理系统的使用用户
- App:泛指黑马头条APP
- WeMedia:泛指黑马头条自媒体系统
- Admin:泛指黑马头条管理系统
2.技术栈说明
(1).技术栈-基础六层技术
基础六层中包括前端(Weex、Vue、Echarts、WS)、网关(GateWay)、DevOps(单元测试、代码规范)等重难点技术
Weex+Vue+WebSocket
:使用Weex跨平台开发工具,整合集成VUE框架,完成黑马头条移动端功能开发,并集成WebSocket实现即时消息(文章推荐、私信)的推送- Vue+
Echarts
: 自媒体系统使用Vue开发关键,集成Echarts图表框架,完成相关粉丝画像、数据分析等功能- Vue+Echarts+
WebSocket
: 管理系统也是使用Vue开发,集成Echarts,完成网站统计、内容统计等功能,集成WebSocket,实现系统看板实时数据自动化更新Spring-Cloud-Gateway
: 微服务之前架设的网关服务,实现服务注册中的API请求路由,以及控制流速控制和熔断处理都是常用的架构手段,而这些功能Gateway天然支持- PMD&P3C :
静态代码扫描工具
,在项目中扫描项目代码,检查异常点、优化点、代码规范等,为开发团队提供规范统一,提升项目代码质量- Junit : 在持续集成思想中,
单元测试
偏向自动化过程,项目通过Junit+Maven的集成实现这种过程
(2).技术栈-服务四层技术
服务四层中包括中间件(Kafka、Mycat)、计算(Spark、Neo4j、Hive)、索引、微服务、大数据存储等重难点技术
- 运用
Spring Boot快速开发框架
,构建项目工程;并结合Spring Cloud全家桶技术,实现后端个人中心、自媒体、管理中心等微服务。- 运用
WebMagic爬虫技术
,完善系统内容自动化采集- 运用
Kafka
完成内部系统消息通知;与客户端系统消息通知;以及实时数据计算- 运用
MyCat数据库
中间件计算,对系统数据进行分开分表,提升系统数据层性能- 运用
Redis缓存
技术,实现热数据的计算,NoSession等功能,提升系统性能指标- 运用
Zoookeeper
技术,完成大数据节点之后的协调与管理,提升系统存储层高可用- 使用Mysql存储用户数据,以保证上层数据查询的高性能
- 使用
Mongo
存储用户热数据,以保证用户热数据高扩展和高性能指标- 使用
FastDFS作
为静态资源存储器,在其上实现热静态资源缓存、淘汰等功能- 运用
Habse
技术,存储系统中的冷数据,保证系统数据的可靠性- 运用
ES搜索技术
,对冷数据、文章数据建立索引,以保证冷数据、文章查询性能- 运用
Sqoop、Kettle
等工具,实现大数据的离线入仓;或者数据备份到Hadoop- 运用
Spark+Hive
进行离线数据分析,实现系统中各类统计报表- 运用
Spark Streaming + Hive+Kafka
实现实时数据分析与应用;比如文章推荐- 运用
Neo4j
知识图谱技术,分析数据关系,产出知识结果,并应用到上层业务中,以帮助用户、自媒体、运营效果/能力提升。比如粉丝等级计算- 运用
AI技术
,来完成系统自动化功能,以提升效率及节省成本。比如实名认证自动化
(3).技术栈-分布