项目总体逻辑架构详解|学习笔记

简介: 快速学习项目总体逻辑架构详解

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第一阶段项目总体逻辑架构详解】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/669/detail/11583


项目总体逻辑架构详解

 

内容介绍

一、课堂回顾与目标

二、逻辑架构详细分析

三、知识总结

 

一、课堂回顾与目标

为加深此流程印象,探究数据预处理、实时计算等环节具体措施,掌握反爬虫项目的总体逻辑架构

分为数据采集、数据预处理、计算(分为实时计算与离线计算)、数据展示四个阶段与数据流程一一对应。

 图片1.png


二、逻辑架构详细分析

逻辑架构分为数据采集、数据预处理、计算(分为实时计算与离线计算)、数据展示四个阶段

(1)数据采集

首先,企业为顾客查询提供官网界面。

如下:

图片2.png

用户进行查询或预定功能后,在企业端进行数据采集的工作

再将采集到的信息存储

与数据流程采集数据到 kafka,一一对应

(2)数据预处理阶段

首先,数据打入 kafka,读取数据到链路统计模块。

与数据流程将 kafka 采集到的数据运行到 SparkStreaming 程序,实现数据分析的环节相对应

同时从数据库当中把规则读取过来,运用到数据清洗等阶段

结合数据与规则进行数据脱敏,完成后依次进行数据拆分、数据分类、数据解析、历史爬虫、数据结构化、数据推送等步骤。

数据推送就是数据流程中将预处理结果返回到 Kafka 当中

此外在数据预处理,处在系统监控功能,负责数据预处理阶段的性能监控。

(3)实时计算

首先是读取封装,将数据预处理阶段传送过来的数据进行读取与封装

然后进行指标计算,计算八个指标

完成后进行爬虫识别,剔除非爬虫,只保留纯爬虫数据

保留纯爬虫数据完成后进行爬虫去重,重复数据的去除工作

最后进行爬虫入库将爬虫程序进入 Redis,避免数据丢失,将进行数据备份。

(4)数据展现层

进入 Redis 的部分数据需要写入或备份进 MySQL,

在爬虫程序进入 Redis 时,可以将数据备份到 HDFS 中,如果 Redis 丢失数据,可在 HDFS 中进行恢复。

以上为反爬虫项目的识别工作,而数据流程中的读取已知的爬虫返回到前端,爬虫再次查询即可剔除掉工作,在前期通过脚本实现,属于前端工作室的工作。

工作本质为:将爬虫识别后,写入 REDIS,被前端工作室按照股则读取爬虫程序,通过判断,进行屏蔽。

(5)逻辑架构数据离线报表的实现

在实时计算层阶段,把读取的数据不经处理,写入 HDFS, 为离线报表作准备。

离线报表作为程序,将 HDFS 的数据读入程序进行计算,将计算结果写入 MySQL,该过程对应数据流程中的离线报表的制作。

(6)前端展现

分为链路监控、数据预处理监控、爬虫识别监控、离线报表展现、数据规则配置等,这些监控作为前端数据的展现

写好的代码,数据来源于 Redis 和 MySQL,收集的前端数据在 Redis 和 MySQL 中读取。

前端展现通过 Redis 和 MySQL 支持

(7)系统管理

包括系统监控、策略管理、流程管理、规则管理、采集管理、系统关系等,本质为企业内部的模块,仅作了解

逻辑架构十分重要,准备理解从数据预处理到数据的备份再到离线计算等工作。

 

三、知识总结图片3.png

数据采集层:使用数据采集器(lua),将数据采集到分布式消息系统(kafka)

数据处理层:

1.读取 kafka 的数据(两种方式)

2、进行数据拆分、数据分类、数据解析、历史爬虫判断、数据结构化、数据推送

3、将结构化数据推送回 Kafka

实时计算层:

1.读取 web 中配置的规则

2、通过规则进行反爬虫实时计算

3、将计算结果(爬虫)推送到 Redis

4、将计算当中指标推送到 hdfs

离线/准实时计算层:

1.读取 hdfs 的计算指标

2、通过指标进行数据的报表统计

3、统计完的数据推送到 mysql 中

数据展示层:

mysql 通过 web 报表进行展示

相关文章
|
5月前
|
消息中间件 监控 前端开发
如何开发项目管理系统中的项目结项板块?(附架构图+流程图+代码参考)
在企业项目管理中,“项目结项”是关键环节,常因流程不清、文档不全、审批滞后等问题导致交付困难。本文介绍如何通过“项目结项”模块实现线上化管理,涵盖结项申请、审批流程、成果上传、权限控制等功能,帮助团队高效完成项目收尾,避免成果丢失与流程混乱。内容包括功能设计、业务流程、系统架构、数据库设计、核心代码实现、前端交互及优化建议,助力项目管理系统快速落地并稳定运行。
|
5月前
|
存储 移动开发 JavaScript
快应用推广连接底层技术与架构以及如何结合自身系统分销的推广逻辑和技术对接-优雅草卓伊凡|果果|Ant
快应用推广连接底层技术与架构以及如何结合自身系统分销的推广逻辑和技术对接-优雅草卓伊凡|果果|Ant
116 4
快应用推广连接底层技术与架构以及如何结合自身系统分销的推广逻辑和技术对接-优雅草卓伊凡|果果|Ant
|
4月前
|
人工智能 自然语言处理 JavaScript
Github又一AI黑科技项目,打造全栈架构,只需一个统一框架?
Motia 是一款现代化后端框架,融合 API 接口、后台任务、事件系统与 AI Agent,支持 JavaScript、TypeScript、Python 多语言协同开发。它提供可视化 Workbench、自动观测追踪、零配置部署等功能,帮助开发者高效构建事件驱动的工作流,显著降低部署与运维成本,提升 AI 项目落地效率。
410 0
|
5月前
|
数据挖掘 项目管理 Python
如何开发项目管理系统中的项目启动板块?(附架构图+流程图+代码参考)
本文介绍了项目管理系统中“项目启动”板块的设计与实现,涵盖功能模块、业务流程、开发技巧及效果展示,并提供代码参考和常见问题解答,助力企业高效搭建项目管理平台。
|
5月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
461 0
|
5月前
|
监控 前端开发 BI
如何开发项目管理系统中的项目收支板块?(附架构图+流程图+代码参考)
本文深入讲解项目管理系统中项目收支模块的设计与实现,涵盖预算、收入与支出管理,以及报表分析功能。内容包括模块功能概述、业务流程、开发技巧与实现方法,并提供数据库设计及前后端代码示例,助力企业打造高效的项目财务管控系统。
|
5月前
|
SQL 前端开发 项目管理
如何开发项目管理系统中的项目执行板块?(附架构图+流程图+代码参考)
随着企业项目规模扩大,传统管理方式已难以满足需求。本文介绍项目管理系统中“项目执行”板块的开发,涵盖任务管理、创建、验收及进度汇报等核心环节。通过功能设计、业务流程和开发技巧,结合代码示例,帮助企业高效推进项目执行,提升管理效率。
|
2月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。