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

打印 上一主题 下一主题

主题 1068|帖子 1068|积分 3208


0 项目说明

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

1 项目说明

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

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

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

3.1 体系功能布局

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

  • 上传
  • 下载
  • 格式转化
  • 添加水印
  • 查看图片元数据
  • 查看上传汗青

从处理惩罚的请求范例看,可将整个体系划分为三大模块:

  • 写模块
  • 读模块
  • 消耗者模块
写模块处理惩罚需写存储的请求,如上传、删除图片,其处理惩罚核心流程,将非核心流程通过消息队列异步化到消耗者模块处理惩罚。
读模块提供接口供外部调用访问图片的二进制数据和元数据,仅处理惩罚读存储的请求。
消耗者模块异步完成非核心流程处理惩罚,将处理惩罚均匀打散到不同时间、不同呆板上处理惩罚,异步化到达降低处理惩罚时延、负载均衡、削峰的目的。
3.2 设计模式

本体系夸大异步架构,异步通过消息队列实现,将非核心处理惩罚步调异步化到不同时间、不同呆板上做处理惩罚。因为采用消息队列,所以选择生产者消耗者模式举行处理惩罚。
为了在开辟前期中测试阶段满足测试需要,在还没接入HDFS分布式存储时,将图片简单地存储在本地文件体系中,方便后续替换不需要修改大量的代码,采用面向接口编程,对于每个实现独立测试。在后续实现中需替换分布式存储时,可将代码改动降低到最小。如需将本地存储替换为HDFS、HDFS替换为Ceph。
开辟中采用Go语言保举的实践,使用组合模式而不是集成模式。
因为WebHdfs中采用Restful HTTP协议交互,如果每个请求编程中都使用重复代码拼接HTTP请求,不但代码复用率低,而且容易堕落。将WebHdfs交互部门使用适配器模式举行抽离。到达每次只需调用适配器的代码,即可以大概访问WebHdfs的目的。


4 论文概览


5 项目工程

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表