2023-06-26
krpano上传多张大图时切图过程无响应分析
随着互联网技术及基础设施的发展,很多以前想想都觉得奢侈的场景应用现在都变得非常日常了,比如视频直播、短视频、VR全景等等。就VR全景而已,最近今年在国内的应用非常火,比如VR看房、VR游览景区等等。
在国内,很多VR全景产品的处理引擎都是基于外国友人写的krpano这套软件,然后在应用层面使用不同的开发技能与工具加上扩展的功能模块。就目前我们参与过的VR项目,底层核心部分的处理引擎都是采用krpano。基于krpano的全景项目我们开发了数个,目前就遇到了一个极端情况下的问题。
x01问题
用户反馈:一次性上传20张20MB左右图片;上传采用阿里云OSS,是没有问题的,然而上传成功后在等待切图的时候,一直卡住不动了。而上传较少的图片(哪怕图片超过100MB)或者较多图片每张图片很小都可以上传并切图完成。
x02分析
到了切图流程说明图片肯定是上传成功的,因为采用第三方存储的架构项目,全景图片处理的基本流程是:上传原图到阿里云OSS–>服务端从阿里云OSS通过CDN获取图片(也可以直接一步到位传到服务器本地)–>krpano切图并在服务器临时存储或永久存储–>切图生成的图片上传到OSS,并在并在数据库记录各个图片路径–>通过krpano算法组合图片生成我们看到的全景。
于是,图片上传接口肯定是正常的,不管图片是直接上传到服务器本地还是先上传到阿里OSS这类第三方存储云平台;而且切图接口返回也是正常的,也就是说明切图流程已经开始执行了;再者开发的时候由于考虑这种场景下上传及切图处理时间肯定不会太短,所以做了一个心跳处理,而且该接口也是正常的。