在校学习笔记之网站的高可用(二)

  大型网站的高可用数据

  对于一个网站,最重要的就是数据,如何保护好数据是重中之重。而保证数据的高可用的手段主要有数据备份和失效转移机制。数据备份来保证数据有多个副本。任意副本失效不会导致数据永久丢失,实现数据完全的持久化。失效转移机制则保证当一个数据副本不可访问时可以快速切换到数据的其他副本,保证系统可用。

  对于缓存服务器的数据是否进行备份,这有两种不同的争论。一、需要备份,当缓存服务失效导致数据库的负载过大,严重时使系统宕机,因为缓存承载了系统绝大多数的数据访问。第二种认为缓存服务不是数据存储服务,这种错误引发的宕机不应当通过缓存备份来解决,这种观点的对于缓存服务器高可用数据的解决方案是:建立统一的缓存服务器集群,任何服务使用统一的缓存服务器,单独的产品和应用不需要单独部署缓存服务器,只需要向共享服务器申请访问资源即可,这种缓存服务器的单个服务器宕机,造成的影响要小很多。

 CAP原理

  大型网站为了保证数据高可用的情况下,通常会牺牲另一个很重要的指标:数据一致性。高可用的数据有如下几个层面的含。数据持久性、数据可访问性、数据一致性。

  1.数据持久性。保证数据可持久存储,在各种情况下都不会出现数据丢失的情况。这就要求写入数据时需要写入持久性存储,还需要将数据备份一个或多个副本,存放不同的物理存储设备。

  2.数据可访问性。当实现一份数据存储多个副本时,访问需要切换到另一个数据存储设备,切换速度如果不能很快完成(用户感知到,发现服务有问题)或者在完成过程中需要停止终端用户访问数据,那么这段时间数据是不可访问的。

  3.数据一致性。在数据有多个备份、如果网络、服务器或者软件出现故障导致有些副本写入成功但有些副本失败,也是常有的事情,这就会导致数据冲突,数据不一致的问题。这时CAP原理认为:提供数据存储的系统无法同时满足数据一致性、数据可用性、分区耐受性(系统具有跨网络分区的伸缩性)。

  对于这三点的具体解释。数据一致性(Consistency):所有应用程序都能访问到一致的相同的数据。数据可用性(Availibility):任何时候、任何应用程序都可以进行读写访问。分区耐受性(Paritition Tolerance):系统可以跨网络分区线性伸缩。

  大型网站的数据规模扩张迅速,因此可伸缩性即分区耐受性是必不可少的。规模变大以后,机器数量也会变得庞大,这时网络和服务器故障就会频繁出现,要想保证服务的高可用,就必须保证分布式处理系统的高可用性,系统高可用的前提是数据可以正常访问。这是网站网站往往就会选择强化分布式存储系统的可用性(A)和伸缩性(P),一定程度上放弃一致性(C)。数据不一致通常出现在系统的高并发写操作或者集群状态不稳时。应用系统需要即时的进行某种意义上的补偿和纠错,以避免出现系统数据不正确的情况。

  CAP原理对于可伸缩的分布式系统有很大的意义,不恰当的迎合各种需求,可能会是设计进入进退两难的境地。数据的一致性又可分为:数据强一致,数据用户一致,数据最终一致。

 

 

大量内容来自于李智慧老师的《大型网站技术架构》,侵权请联系我删除。如果有不对的对方也欢迎大家之初,感谢大家。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值