方案对比

2017-04-01  本文已影响0人  toliong

大量的静态图像数据

一、 问题

1. 数据流量特征

通过App向各个微服务提交的业务数据中,通常会包含以下类型的现场照片:委托人、委托物品、交易凭据等。

二者相对比,静态图片数据平均占据业务数据通道的 99% 以上,而核心的业务数据平均只占据不足 1% 的业务数据通道。

2. 现有解决方案的缺陷

应用服务器的职责是接受提交的业务数据,经过处理后存入业务数据库。在此过程中需要大量的数据转换、运算等,因此对CPU、内存有较高的要求,而对网络带宽要求较低。
然而目前应用服务器需要同时处理业务和静态图像数据。导致以下3个问题:

二、 解决方案

流量分流:图片等静态资源存储在OSS上,将访问图片的流量转向到OSS上,不仅减少因为占用大量带宽造成的服务器资源浪费,还可以减少存储和带宽上的投入。

现有的解决方案,同时发送几个图片请求就会将带宽占满,不仅影响图片响应速度,还可能会影响到核心数据,而且费用也非常高。

以一张大小为 150KB 的图片,磁盘空间40G为例,服务器带宽 10Mbps 为例 。发8张图片就会将带宽沾满。
根据阿里云的定价

40G的磁盘价格为14元/月。10Mb带宽费用是472.5/月 ,每年所需费用(14+472.5)* 12 = 5838 元

将图片存储到阿里云OSS对象存储上,图片流量不会对应用服务的带宽多大的影响,而且对象存储的价格也十分的便宜。
同样以一张大小为 150KB 的图片,磁盘空间40G 为例 。

由于图片这样占用带宽较大的静态文件通过OSS读写,不占用服务器的带宽资源,使用4M带宽即可满足需求。4M带宽的费用是86.4元,一年的带宽费用为84.4*12 = 1036 元

使用OSS一年总共需要费用是1036+186.2 = 1222.2 元

一年节省的费用 5836-1222.2= 4613.8 元

三、对开发人员的影响

前端人员 后台人员 APP开发 系统维护 存储
现有方案 需要额外进行处理 文件上传 POST , BASE 64 分布式存储
阿里云OSS URI后直接添加变量参数进行处理 仅需要图片的存储路径和文件名 SDK 并行/异步 无需其他额外工作
本地OSS(swift) URI后直接添加变量参数进行处理 仅需要图片的存储路径和文件名 SDK 并行/异步 无需其他额外工作

使用OSS存储方案,不仅减少由于带宽大量占用而造成的的资源浪费,同时降低了服务器对带宽的要求,从而节约了一定的成本。

配置请参考: http://www.jianshu.com/p/9195c4bcc7d6

上一篇下一篇

猜你喜欢

热点阅读