背景
故事是如许的:
公司体系内里有一个效劳是 PDF2JPG (实际上应该是 PPT2JPG, 只是PPT2PDF这一步骤我们应用七牛的云效劳来完成。) 初期的时刻我们依据体系负载已实际情况采纳了 crontab 来定时猎取数据库须要转换的数据。所以这个效劳的QPS是 1/60 QPS。是的,你没看错就是这么低,然则用起来还好,毕竟用户容量不大。
然则跟着用户范围的增大,我们不能不重视一个题目:就是怎样满足用户转换的动态需求 (用户的需求爆发点平常爆发在晚上6点摆布)。恰好七牛的 UFOP 能满足我们的需求。而且另有免费的额度。
内存 CPU 体系盘 按需¥/每小时 月计
M0C1 512MB 1 Core 10GB 0.088 63.36
M1C2 1GB 2 Core 10GB 0.176 126.72
M4C8 4GB 8 Core 10GB 0.650 468
M8C12 8GB 12 Core 10GB 1.300 936
注重:M0C1的情况下,规范用户 和 高等用户 ,有 750 小时/月的免费额度。
我们的计划是如许的 在闲时只开启一个 M1C2 实例, 忙时再开启两个 M1C2 实例。如许既保证有效性也能保证经济性
实行
写七牛的代码,肯定不能只看官方网站的文档,肯定要找他们 github 上的项目 qiniu-ufop-go 、ufop-golang。 不过纵然 github 上的也不能全信,有些也是逾期的。
只需你记着以上这个,那末写代码基础不算什么!
布置
很多人以为是最难的代码都写了,那末布置应该是分分钟的题目。那就看一下下面的血泪图吧。
七牛采纳的是 docker 的计划,自建了更新源,隔离了外网链接。所以装置一个 ImageMagick 别提有多疼了!
起首须要装置 libpng , 接着装置 ghostscript ,然后再装置 ImageMagick,但是 ImageMagick 死活都找不到 libpng 的途径,所以没办法支撑 png。 你必须得先装置 pkg-config 才行。
完全的 ufop.yaml 代码以下。
image: ubuntu
build_script:
- echo building...
- mv $RESOURCE/* ./
- sudo ldconfig /usr/local/lib
- tar zxvf pkg-config-0.29.tar.gz > /dev/null
- cd pkg-config-0.29 && ./configure --with-internal-glib && make > /dev/null 2>&1 && sudo make install > /dev/null
- tar zxvf libpng-1.6.24.tar.gz > /dev/null
- cd libpng-1.6.24 && ./configure > /dev/null && make > /dev/null && sudo make install > /dev/null
- tar zxvf ghostscript-9.15.tar.gz > /dev/null
- cd ghostscript-9.15 && ./configure > /dev/null && make > /dev/null 2>&1 && sudo make install > /dev/null
- tar -zxvf ImageMagick.tar.gz > /dev/null
- /usr/local/bin/pkg-config --list-all
- cd ImageMagick-7.0.3-4/ && ./configure --enable-shared=yes > /dev/null && make > /dev/null && sudo make install > /dev/null
- sudo ldconfig /usr/local/lib
- echo "convert -list format"
- chmod +x ./run
run: ./run qufop.conf
附上效果图: