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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
实时计算 Flink 版,5000CU*H 3个月
简介: 快速学习项目总体逻辑架构详解

开发者学堂课程【大数据实战项目:反爬虫系统(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 报表进行展示

相关文章
|
2月前
|
前端开发 JavaScript 测试技术
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
38 3
|
8天前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
123 81
|
2月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
196 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
2月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
64 6
|
2月前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
3月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
56 2
|
3月前
|
缓存 前端开发 JavaScript
前端架构思考:代码复用带来的隐形耦合,可能让大模型造轮子是更好的选择-从 CDN 依赖包被删导致个站打不开到数年前因11 行代码导致上千项目崩溃谈谈npm黑洞 - 统计下你的项目有多少个依赖吧!
最近,我的个人网站因免费CDN上的Vue.js包路径变更导致无法访问,引发了我对前端依赖管理的深刻反思。文章探讨了NPM依赖陷阱、开源库所有权与维护压力、NPM生态问题,并提出减少不必要的依赖、重视模块设计等建议,以提升前端项目的稳定性和可控性。通过“left_pad”事件及个人经历,强调了依赖管理的重要性和让大模型代替人造轮子的潜在收益
|
1月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
2月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
52 3
|
2月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####

热门文章

最新文章