万有斥力 发表于 2024-10-13 17:25:49

毕设分享 基于异步架构的图片管理体系后端计划和实现(源码+论文)

0 项目阐明

基于异步架构的图片管理体系后端计划和实现
提示:适适用于课程计划或结业计划,工作量达标,源码开放
本体系仅向外提供JSON接口,不返回HTML/CSS/JS等可视化数据,相对于经典的MVC架构仅有MC,也就是只有模子层、控制层。
1 项目阐明

在互联网、多媒体时代,图片无处不在,云计算服务商针对图片垂类的支持短缺,各个企业重复开发征象严重。图片管理是CPU密集型、IO密集型场景,利用同步处理时延高、流程长,体系高峰期、低峰期负载相差较大,造成资源浪费。
利用异步架构可以或许很好地办理同步场景下的题目,将处理流程分为核心路径和非核心路径,核心路径利用同步处理,非核心路径通过消息队列异步化处理,缩短处理流程,低落处理时延,异步化还能起到削峰的作用。添加、删除、修改非核心路径的处理,不需改动核心路径代码,增大体系的可维护性和可扩展性。
2 相关技术

异步化是将非核心路径的处理转移到不同服务实例、不同时间进行处理,达到提高用户体验,体系削峰、流程优化、提高体系可扩展性的目标。
本体系主要利用的技术有:

[*]NSQ消息队列体系
[*]MySQL关系型数据库体系
[*]HDFS分布式存储体系
[*]Redis缓存体系
[*]Go编程语言
[*]Docker容器管理体系
3 体系计划

3.1 体系功能结构

图片管理体系后端的主要需求:

[*]上传
[*]下载
[*]格式转化
[*]添加水印
[*]检察图片元数据
[*]检察上传历史
https://img-blog.csdnimg.cn/951c070a15a442feaea3d143ef20e3d2.png
从处理的请求范例看,可将整个体系划分为三大模块:

[*]写模块
[*]读模块
[*]消费者模块
写模块处理需写存储的请求,如上传、删除图片,其处理核心流程,将非核心流程通过消息队列异步化到消费者模块处理。
读模块提供接供词外部调用访问图片的二进制数据和元数据,仅处理读存储的请求。
消费者模块异步完成非核心流程处理,将处理匀称打散到不同时间、不同机器上处理,异步化达到低落处理时延、负载均衡、削峰的目标。
3.2 计划模式

本体系强调异步架构,异步通过消息队列实现,将非核心处理步调异步化到不同时间、不同机器上做处理。由于采用消息队列,所以选择生产者消费者模式进行处理。
为了在开发前期中测试阶段满足测试需要,在还没接入HDFS分布式存储时,将图片简单地存储在本地文件体系中,方便后续替换不需要修改大量的代码,采用面向接口编程,对于每个实现独立测试。在后续实现中需替换分布式存储时,可将代码改动低落到最小。如需将本地存储替换为HDFS、HDFS替换为Ceph。
开发中采用Go语言保举的实践,利用组合模式而不是集成模式。
由于WebHdfs中采用Restful HTTP协议交互,如果每个请求编程中都利用重复代码拼接HTTP请求,不但代码复用率低,而且容易出错。将WebHdfs交互部分利用适配器模式进行抽离。达到每次只需调用适配器的代码,即可以或许访问WebHdfs的目标。
https://img-blog.csdnimg.cn/b66b2c7bf90d463ba2b9b1797d9d1134.png
https://img-blog.csdnimg.cn/ea99e862c58e4f60b5dc439ceafa3e05.png
4 论文概览

https://img-blog.csdnimg.cn/2baa985d3ef94e8a80df89c1a411db21.png
5 项目工程

**项目分享: ** https://gitee.com/asoonis/htw

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 毕设分享 基于异步架构的图片管理体系后端计划和实现(源码+论文)