网站首页 > 精选教程 正文
最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的
今天再这里简单讲一下上传图片以及图片服务器的大致理念(正式环境还是建议上集群的)
如果是个人项目或者企业小项目,仅仅只有十来号人使用的小项目,可以使用如下方案:
用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的tomcat服务器上,在/image下,上传成功后用户可以直接访问
http://ip:port/project/images/xxx.jpg
这样做在用户少的时候是没有问题的
当你的企业发展起来了,业务量增多了,使用的这个项目开始大起来了,发现系统速度变慢了,那么你就考虑到集群了对吧
那么好,假设你增加了一个tomcatB,性能提高了一点,图片也成功上传了,做了负载均衡,假设图片上传的了tomcatA(用户是不知道的)
第二次访问的时候(先不考虑session粘性不粘性的问题,假设是共享的),用户访问到了tomcatB,图片没有了,是个大叉叉,我的天呐!发什么什么事了,明明刚刚上传的图片没有了,
再刷新一下,欸!又有了?这是什么情况呢?
后台知道咋回事,但是用户不知道啊!!!
那么解决方案是这样的,tomcatA和B上传至图片服务器,这用户请求的时候只访问图片服务器的路径,这样就没问题了
有人会问图片服务器用什么来搭建呢?
tomcat?可以,但是tomcat主要处理jsp比较好,图片文件是静态资源,处理起来性能一般般
Apache?可以,纯C语言开发的,没问题,但是还不够好
nginx?对了,这个是目前比较流行的一个反向代理服务器,我在之前的文章有简单介绍过(http://www.cnblogs.com/leechenxiang/p/5327086.html)
理论的单台机子并发能达到5万,非常的叼,实际测试是2w左右
安装如下的方案去做,那么图片服务器就问题不大了,
当然,图片上传后,需要把图片的路径地址保存到数据库啊~~
我曾经见到过一套电子商务系统的图片上传是采用方案是类似1的,这么做没问题,
但是呢,图片居然上传到他喵的MySQL某个表的某个字段中的,你妹啊,我的天呐!怎么可以这么做,何况数据库没有分库分表分区建索引,好吧,这也是我的一个吐槽点,谁叫我曾经参与过呢。。。
猜你喜欢
- 2024-10-10 nginx+ffmpeg搭建流媒体服务器(直播流)
- 2024-10-10 Nginx的server块和location块的简单说明
- 2024-10-10 Nginx并发模型与traffic_server并发模型比较
- 2024-10-10 nginx 改变您的HTTP服务器的缺省banner
- 2024-10-10 用Caddy2替代Nginx,新一代Web服务器软件使用初体验
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)