基本需求:设计一个图片服务器,能够高效的提供各种平台语言接口,包括上传、编辑、删除、切图、排序等功能,目前数据量大概是1亿张。
各个平台复杂需求:图片上传后需要立刻能显示,能进行删除、排序等操作。图片和实体资源有关联性:一个实体对应N张图片,或者对应1张图片,还有图片和实体的对应关系表存储。
图片转换:因为有些实体资源对应N张图片,一张图片对应N张大小的缩略图,若是上传时执行转换操作肯定会很慢,其中多的时候涉及到20来张图片的处理,所以一般得用异步处理。
图片存储:图片关系存储和图片文件存储规划都涉及到各个地方调用的简便性。
我说下我们现在的这个系统,node.js+redis+activemq ,现在遇到的很多问题包括需求复杂,需要大量的修改,还有当用户上传图片的时候,比如文章里面的图片上传,文章还没有完成时,既要进行图片的上传,如何做关联。前台列表页调用图片N张图片,需要循环读取,效率会很差。
基于以上的几点,请求各位,这样的系统如何设计,使用什么软件,什么结构,悉心听取大家的意见。
你的需求如果这么复杂,肯定要把图片地址的组织和分发独立出来作为一个单独的服务器,
存储图片的肯定是nginx 集群,或者是用CDN做前端缓存。要简单的做法就是对每张
图片hash,然后把hash值作为key 来在调用该图片的时候存在,然后根据图片hash 计算
出对应的服务器域名和地址,例如一张图片hash是68b329da9893e34099c7d8ad5cb9c940,
则计算出他的地址是http://68.img.com/b/3/29/da9893e34099c7d8ad5cb9c940.jpg
这样解决负载问题,同时多域名分发能突破ie单域名2线程限制提高图片加载速度。
@tipboy已经用redis和activemq,估计类似的设计已经考虑过了,现在如果还要有提高
就参照facebook的设计吧,就是提高组织和分发的效率,网上有较详尽的分析:
英文原文:
http://www.facebook.com/note.php?note_id=76191543919
中文译文:
http://www.kuqin.com/system-analysis/20120126/317600.html
相关推荐
大规模消息系统解决方案(读写分离、缓冲,最大限度的利用cpu的利用率)
大厂架构设计及转型解决方案合集(19份),供大家学习参考: 58速运智能派单系统的架构演进.ppt Cloud Native架构一致性问题及解决方案(45页).pptx 七牛云大数据平台的架构与演进(43页).pdf 架构师技术领导力...
超大规模核心系统,技术架构总体设计,值得借鉴学习。
目前主要分为以下两部分:楼宇智能化规划和建设方案:主要包括视频监控、门禁系统、语音和数据节点规划和布线、CATV、大屏幕电子显示屏、机房建设等。企业IT基础架构规划和解决方案:主要包括企业局域网基础网络拓扑...
非常棒的一部内部讲义,强烈推荐高级软件架构师 目录: 00 架构师与设计师 01 软件流程实施方案选择 02 软件架构文档设计 03 软件架构风险管理 ...22 面向组件的大规模软件架构 23 软件构架设计总结
如何架构与设计大规模分布式存储系统满足海量数据的存储需求?如何保证海量数据的一致性?如何保证海量数据的高可靠性?如何保证数据高安全性?如何保证分布式存储系统的高扩展性?如何保证分布式存储系统的负载均衡...
本书没有局限于对LTE规范的简单翻译,而是基于作者的参会经历,对LTE研究和标准化过程中关键技术的取舍和设计方案的甄选过程进行了分析,诠释了LTE系统设计的思想,体现了标准化的整体设计、全面权衡的特点,因此...
高级软件架构师培训讲义,共分24章: 00_架构师与设计师 01_软件流程实施方案选择 02_软件架构文档设计 03_软件架构风险管理 04_如何描述和评估软件架构质量 ...22_面向组件的大规模软件架构 23_软件构架设计总结
从LiveJournal后台发展看大规模网站性能优化方法 70 中国顶级门户网站架构分析1 116 中国顶级门户网站架构分析 2 118 服务器的大用户量的承载方案 120 YouTube Scalability Talk 121 资料收集:...
2017中国系统架构师大会,共18个专场,81个专题PPT。 部分专题如下,这里就不一一列举了: 主会场一: 京东云为企业提供智能化之路 新一代数据仓库 ...从0到1到无穷——vivo互联网的大规模机器学习实践
大规模下的存储解决方案和迁移实例分析 高可用架构演进 高可用建设之路 数据中心网络的高可用架构 打造千亿级分布式存储平台 大数据平台的技术演进与实践 技术架构快速规划与落地 人工智能助力打造亿级广告平台 ...
三 机房KVM监控管理系统设计方案 3.1 系统设计原则 系统兼顾成熟性与先进性 开放性和原则化 可扩大性 安全性与可靠性 实用性,适应顾客实际应用环境 3.2 机房KVM监控管理系统安全性设计 完整旳安全系统,需要综合...
此外,更大的挑战在于业务上需要我们实时的分析处理如此大规模的数据。从数据生成到可被分析查询,系统延迟在秒级。我们选用Druid/Samza/Kafka/Spark/Hadoop等开源技术栈,开发了符合Lambda architecture的OLAP系统...
多数电商平台都会经历相似的过程,流量和业绩每年以几倍至十几倍的速度增长,每年都要接受几次大规模、全方位的系统检阅,例如双11、周年庆等购物狂欢节,期间流量和订单可能是日常的十几倍甚至几十倍,产生的峰值对...
2022大数据存储架构实践资料合集,共51份。 一站式海量数据集成框架原理和实践 为云而生的分布式文件系统 未来数据库需要关心的硬核创新 Apache Doris存储层向量化改造...大规模图的存储技术选型哲学 ……等等51份。
Docker 应用:如何设计超大规模容器调度系统(19页).pdf
服务器虚拟化建设方案 1)建设原则 在系统设计中我们遵循以下原则: ·系统设计的前瞻性: 充分考虑未来5-8年的业务发展的需要。 ·系统设计的先进性: 在经费和技术许可的范围内,引进、吸收和应用先进技术。在...
22_面向组件的大规模软件架构.pdf 23_软件构架设计总结.pdf 24 可靠性设计准则.pdf 25 软件可靠性培训讲稿.pdf 项目实例讨论-RUP&UML实践之路(全).pdf 因附件大于16M被分成了两个包上传,请下载软件架构师教程1....
厂区网络视频监控系统设计方案全文共6页,当前为第1页。厂区网络视频监控系统设计方案全文共6页,当前为第1页。厂区网络视频监控系统设计方案 厂区网络视频监控系统设计方案全文共6页,当前为第1页。 厂区网络视频...