透过“分布式系统的8大谬误”反思APP的设计 第七篇 谬误7:网络传输无需任何开销

通过“分布式系统的8大谬误”反思APP的设计 第七篇 谬误7:网络传输无需任何开销

谬误 7:网络传输没有什么代价
Arnon Rotem-Gal-Oz’s 在解释这条谬误的时候具体指出了,需要从一下两方面来看:
第一,你需要考虑应用和网络接口之间的数据传输开销。除了带宽和时延会带来开销,数据的序列化和反序列化也会影响到性能。苹果在2010 WWDC session 117“基于服务器的用户体验”的演讲中,对比了xml,json,plist这几种数据传输格式的大小以及加载时间。对比结果表明,各种数据格式的大小都差不多,但是解析的时间相差很大;解析xml需要812毫秒,json需要416毫秒,ascii格式的plist需要140ms,而二进制数据流只需要19ms。
其次,你需要考虑维护网络服务以及基础设施带来的开销。一个用户会给服务器带来多大的负载?这些负载的特性是什么样的?服务器可以同时处理多少请求,扩展服务器需要花费多少钱?使用你的app需要花费你用户多少钱(这些用户可能是按流量给运营商支付流量费,也有可能是包月)。
原文地址:http://blog.carbonfive.com/2010/12/03/iphone-distributed-computing-fallacy-7-transport-cost-is-zero/
译者读后感:
1,作者说的开销指两方面:分别指一次请求占用到的系统资源(CPU计算时间,文件IO消耗),这些消耗特别需要消耗的时间。第二指的是金钱方面的消耗,比方用户的流量费用,另外就是搭建一个合适合理的服务系统需要多少钱。
2,作者写这篇文章的时候是在2010年,那时候的云平台比不上现在。现在阿里云能提供了各种云服务,随时按需要scale up方便的很,云服务器,云文件服务,云mysql库,云负载均衡…

版权声明:本文为博主原创文章,未经博主允许不得转载。