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

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

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值