精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-09-22
图片存放在A主机上,目前保存的图片容量超过了3T,每张图片大概200+KB,1000+的分辨率。WEB应用在B主机上。目前上传图片到A机上的来源可能有三处:A程序、B程序和WEB应用。 本次WEB应用升级的的其中一个问题就是缩略图,因为现在WEB应用直接请求这些图片到客户端,使页面非常的卡,所以以后上传图片时同时对该图片进行一个缩略图的保存。就如上面提到的,上传的来源可能有三处,所以最好的办法就是监听A机上的FTP,如果有上传图片的请求,就同时对该图片进行缩略图处理。 基于上面的分析,我想到了apache ftp server,粗略的看了下文档,好像是可以写Listener来监听command的。但我还不了解这个ftp在性能方面怎么样? 目前我们的应用的并发量大概是50~100,FTP只做上传,不用于下载。 另一个问题就是用java来处理图片的效率非常低,把一张1000+分辨率的图片压缩为100+分辨率,同时处理10张要40+秒,内存貌似也涨得厉害,如果这程序放在j2ee的Filter里用的话还heap溢出,估计得调大heap。不知道这个数据是否在接受范围内,所以打算用java来调用C/C++的库来处理图片压缩。 请大家帮忙分析上面的方案是否可行或有什么更好的方案,感激不尽!!! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-09-22
1、可以考虑 使用ImageMagick 之前就使用这个做缩略图
2、可以考虑lazy 生成缩略图 请求url格式 img_width_height 如果根据这个查找图片没有 则重新生成;否则返回这个图片。 |
|
返回顶楼 | |
发表时间:2012-09-22
jinnianshilongnian 写道 1、可以考虑 使用ImageMagick 之前就使用这个做缩略图
2、可以考虑lazy 生成缩略图 请求url格式 img_width_height 如果根据这个查找图片没有 则重新生成;否则返回这个图片。 2是当客户端去请求这个图片,然后判断该图有没有缩略图,没有就生成,是这个意思吗? 一开始我也是想用这个方案的,但关键是同时一次处理20张图片的缩略图需要太久了,有考虑调用C/C++来提升效率,但好像就算是目前现成的一些转换工具处理20张图片也需要个10秒这样吧,10秒对客户端用户来说太久了- -! 我去看看ImageMagick,呵呵 |
|
返回顶楼 | |
发表时间:2012-09-22
kyousuke_rin 写道 jinnianshilongnian 写道 1、可以考虑 使用ImageMagick 之前就使用这个做缩略图
2、可以考虑lazy 生成缩略图 请求url格式 img_width_height 如果根据这个查找图片没有 则重新生成;否则返回这个图片。 2是当客户端去请求这个图片,然后判断该图有没有缩略图,没有就生成,是这个意思吗? 一开始我也是想用这个方案的,但关键是同时一次处理20张图片的缩略图需要太久了,有考虑调用C/C++来提升效率,但好像就算是目前现成的一些转换工具处理20张图片也需要个10秒这样吧,10秒对客户端用户来说太久了- -! 我去看看ImageMagick,呵呵 1、老的图片lazy 或者写个压缩脚本先压缩 2、新的图片上传后直接压缩 或采用 年/月/日/时 存 做定时任务压缩 3、上传后可以考虑队列(把要压缩的放入一个队列) 启动一个线程压缩 |
|
返回顶楼 | |
发表时间:2012-09-22
jinnianshilongnian 写道 kyousuke_rin 写道 jinnianshilongnian 写道 1、可以考虑 使用ImageMagick 之前就使用这个做缩略图
2、可以考虑lazy 生成缩略图 请求url格式 img_width_height 如果根据这个查找图片没有 则重新生成;否则返回这个图片。 2是当客户端去请求这个图片,然后判断该图有没有缩略图,没有就生成,是这个意思吗? 一开始我也是想用这个方案的,但关键是同时一次处理20张图片的缩略图需要太久了,有考虑调用C/C++来提升效率,但好像就算是目前现成的一些转换工具处理20张图片也需要个10秒这样吧,10秒对客户端用户来说太久了- -! 我去看看ImageMagick,呵呵 1、老的图片lazy 或者写个压缩脚本先压缩 2、新的图片上传后直接压缩 或采用 年/月/日/时 存 做定时任务压缩 3、上传后可以考虑队列(把要压缩的放入一个队列) 启动一个线程压缩 请问我要如何知道图片被上传了呢?上传的来源有三处,我不能去这三处来源那里改代码先做压缩再上传,所以最好是能监听FTP,ftp工具好像没这个功能吧? 关于这个有什么解决办法吗? |
|
返回顶楼 | |
发表时间:2012-09-22
1、请问我要如何知道图片被上传了呢?上传的来源有三处,我不能去这三处来源那里改代码先做压缩再上传,所以最好是能监听FTP,ftp工具好像没这个功能吧? 关于这个有什么解决办法吗? 无
2、上传有三处? 不能集中到一处吗? 专门设置个上传服务器中转(或者主动触发一个内部请求要求压缩) |
|
返回顶楼 | |
发表时间:2012-09-22
jinnianshilongnian 写道 1、请问我要如何知道图片被上传了呢?上传的来源有三处,我不能去这三处来源那里改代码先做压缩再上传,所以最好是能监听FTP,ftp工具好像没这个功能吧? 关于这个有什么解决办法吗? 无
2、上传有三处? 不能集中到一处吗? 专门设置个上传服务器中转(或者主动触发一个内部请求要求压缩) 三处并不是地方不同而已,而是应用不同。 第一个是营业厅使用了高拍仪,然后上传 第二个是数据处理中心使用了扫描仪,用一个C++的软件扫描上传 第三个就是WEB系统本身的上传 所以没办法在客户端进行压缩然后上传,只能在FTP的机器上做压缩,但要能知道何时客户端有图片上传来才行,这个苦恼啊 |
|
返回顶楼 | |
发表时间:2012-09-22
0、营业厅使用了高拍仪/扫描仪,用一个C++的软件扫描上传 这个不能改了是吧? 比如上传地址?
1、只有web系统使用缩略图吧。 |
|
返回顶楼 | |
发表时间:2012-09-22
jinnianshilongnian 写道 0、营业厅使用了高拍仪/扫描仪,用一个C++的软件扫描上传 这个不能改了是吧? 比如上传地址?
1、只有web系统使用缩略图吧。 高拍仪和扫描仪这两个只是负责上传而已,浏览缩略图的只有web系统,上传地址都是从数据库里读的。 也就是压缩图片的这个程序应该是放在装有FTP的A主机上,然后检测到有客户端上传图片到A机上了就进行压缩,问题就是如何知道有图片上传上来了?怎么监听FTP? |
|
返回顶楼 | |
发表时间:2012-09-22
kyousuke_rin 写道 jinnianshilongnian 写道 0、营业厅使用了高拍仪/扫描仪,用一个C++的软件扫描上传 这个不能改了是吧? 比如上传地址?
1、只有web系统使用缩略图吧。 高拍仪和扫描仪这两个只是负责上传而已,浏览缩略图的只有web系统,上传地址都是从数据库里读的。 也就是压缩图片的这个程序应该是放在装有FTP的A主机上,然后检测到有客户端上传图片到A机上了就进行压缩,问题就是如何知道有图片上传上来了?怎么监听FTP? 1、高拍仪和扫描仪这两个只是负责上传而已,浏览缩略图的只有web系统,上传地址都是从数据库里读的。 上传地址能不能改成 http上传 2、两台设备能否修改 去 主动触发一个http 请求 |
|
返回顶楼 | |