码迷,mamicode.com
首页 > Web开发 > 详细

web系统高速发展时的海量数据技术架构

时间:2014-11-13 00:26:02      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:http   ar   os   使用   strong   文件   数据   on   问题   

  当一个web系统的用户不断增长时,其数据量也会随之飞速增长。当数据量达到一定级别后,如数据表已达亿或十亿级别,系统会涉及到一些容量、性能以及分布式方面的问题。此时如在使用Oracle,它也会出现瓶颈,如逻辑读写非常高、CPU一度飙升到四五十、对数据请求不断延时(体现在TPS和QPS不断下降)、数据容量的扩展性差等。

  使用MySQL集群是一个很好的解决办法,因为这样,通过线性地增加机器就可以满足使用要求。将Oracle的数据拆分到MySQL集群上。这样的一个过程涉及到分库分表操作。有水平拆分和垂直拆分2种,一般是使用水平拆分,业务性较强的数据可使用垂直拆分,视数据的特点而定。使用的工具推荐使用阿里的Cobar产品。

  提供多种数据源供系统使用,也是一种提高系统数据性能的手段。可以根据业务数据的特点,把数据存储在不同的数据源。如关系性强的数据储存传统的关系型数据库里,其他数据存储在KV-Store或NoSQL系统中,可达到数据分布的合理性。这种多存储方案是与系统的业务有着紧密关系的。

  缓存系统在整个系统架构中的地位还是相当高的,完善的缓存结构是提高系统性能的利器。缓存是分级别的,从用户发起HTTP请求,到最后访问数据库,都可以在这个过程中设置缓存,包括图片的缓存、静态页面的缓存、动态页面的缓存、JS和CSS文件的缓存以及数据库的数据缓存。缓存系统分为前端缓存和后端缓存,前端缓存的命中率一般都很高,后端的缓存为分Local Cache和Remote Cache。那些不经常变化的数据往往是重点缓存对象,如用户的性别、生日、身高等。而web系统中,缓存的操作往往是把动态页面静态化,以及数据库层自带的缓存功能。缓存系统要关注的问题主要是:缓存的对象缓存的生命周期缓存的命中率

web系统高速发展时的海量数据技术架构

标签:http   ar   os   使用   strong   文件   数据   on   问题   

原文地址:http://www.cnblogs.com/soodo/p/4045428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!