网站架构(一)海量数据的处理解决思路

软件的3大类型

  • 单机类型
  • C/S类型
  • BS类型

BS网络架构传输方式分解方式有两种  一种 OSI参考模型  另一种 TCP/IP参考模型

数据传输的本质  按照晶体震动周期或者其整数倍来传输代表0/1的高低电平

网站最主要问题  响应速度

核心 :解决海量数据操作问题和高并发问题

海量数据的解决方案

缓存和页面静态化

==================================================================================================

缓存将获取数据结果暂时保存起来,下次使用不需要在访问数据库。

缓存的使用方式可分为 

通过程序直接保存到内存  使用map 尤其是ConcurrentHashMap

和使用缓存框架    Ehcache  Memcache  Redis

缓存中最重要的问题是什么时候创建缓存和缓存的失效机制

例如  第一次获取创建    或者  程序启动  或者缓存失效后

失效  可以定期失效 也可以数据发生变化(还可以分粗粒度失效   细粒度失效)

缓存中最好将空数据  用特殊的类型值保存  原因可以自己思考

使用场景 不频繁变化   实时性要求不高

-------------------------------------------------------------------------------------------------------------------------------

页面静态化  将程序生成的页面保存起来,就不需要查询数据库,也不需要程序处理

实现方式:模板技术生成  常用的Freemark  Velocity     还可以用缓存服务器在上一次缓存生成的页面  比如Squid  Nginx提供了相应的功能

=====================================================================================================

数据库优化

=====================================================================================================

这是一种用技术换金钱的方式

常见的技术

表结构优化

SQL语句优化

分区

分表

索引优化

使用存储过程代替直接操作

合理使用冗余

数据库优化这些技术在后面可以做单独的一期讲解,待续--------------------

======================================================================================================

分离活跃数据

======================================================================================================

虽然总量很大,但是活跃的不多,例如网站注册很对,但很多都是僵尸用户,偶尔登录,通过一个定期的处理将不活跃的移动到别的数据库表中

其实主要想法类似于CPU的三级缓存

======================================================================================================

批量读取和延迟修改

=====================================================================================================

原理减少操作次数来提高效率

批量读取将多条查询合并到一次中进行,有效的减少了查询数据库的次数,这种类型可以用异步请求来处理

延迟修改针对高并发且频繁修改的数据,比如统计一些数据,可以先缓存起来,再去提交

=======================================================================================================

读写分离

=====================================================================================================

本质对数据库集群,高并发情况下降低单台服务器压力

引发的问题  分布式一致性  如何做到数据库同步

一般情况   一台服务器,即主服务器, 负责写 为master ,再同步到其他从服务器上slave,在后面有机会了做深入讲解

同步方式:数据库热备份  可能引发数据滞后性

集群就可能引发负载均衡问题,这些有专门的处理,保证对应用系统的透明性

负载均衡问题在后面也会做一期讲解,待续----

======================================================================================================

分布式数据库

========================================================================================================

数据库集群是将多个请求分配到不同的服务器处理从而减轻单台服务器压力

而分布式数据库是解决单个请求本身就很复杂的问题,将单个请求分配到多个服务器上处理

引发的问题:事物处理,多表查询

其他使用思路:将不同的业务数据保存在不同的节点

分布式事物会在后面做一期讲解,待续-----

======================================================================================================

nosql和Hadoop

======================================================================================================

nosql核心是非结构化,突破限制,灵活操作,利用多个块存储的特点,操作大数据数据快

Hadoop对数据的存储和处理提供了解决方案,hadoop存储思路和解决方案在后面会做一期讲解,待续----

=====================================================================================================

今天先更新到这里,欢迎补充,后期也会针对文章缺陷不断改进




=====================================================================================================

欢迎关注我的个人订阅号,我会推送更好的文章给大家,多谢

订阅号

===============================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值