2.3网站的高可用架构之高可用数据

来源:互联网 发布:gas mask for mac 编辑:程序博客网 时间:2024/05/21 19:24

不同于高可用应用和服务,由于数据存储服务器上保存的数据不同,当某台数据存储服务器宕机时,数据访问请求不能切换到集群任意集群上。保证数据高可用的手段主要是数据备份和失效转移机制。


1、高可用的数据

通常有一下几层含义:数据持久性、数据可访问性、数据一致性。为了保证数据的高可用,网站通常会牺牲一些数据的一致性。具体来说,数据一致性又分为以下几点:


1.1、数据强一致

各个副本的数据在物理存储中总是一致的。数据更新操作和操作响应总是一致的,即操作响应通知更新失败,那么数据一定没有更新,而不是处于不确定状态。


1.2、数据用户一致

即数据在物理存储中的各个副本的数据可能是不一致的,但是终端用户在访问时,通过校验和纠错机制,可以确定一个正确的数据返回给用户。


1.3、数据最终一致

这是数据一致性最弱的一种。物理存储中数据可能是不一致的,终端用户访问到的数据也可能是不一致的(同一用户连续访问,结果不同或不同用户访问结果不同),但系统通过一段时间的自我恢复和修正,数据最终会达到一致。网站考虑各因素,结合其他服务的数据监控和纠错功能,使存储系统达到用户一致,保证用户最终访问的一致性。


2、数据备份

数据冷备是指定期将数据复制到某种存储介质上保存起来,缺点是不能保证数据最终一致,也不能保证数据的可用性,它作为一种传统的数据保护手段,依然在网站日常运维中使用。

数据热备可分为异步热备和同步热备方式。

异步热备是指将多份数据副本的写入操作异步完成,应用程序收到数据服务系统的写操作成功时,只写成功了一份,存储系统会异步将数据写到其他副本(该过程可能会失败)。在异步写入方式下,存储服务器通常分为Master和Slave,应用程序只向Master中写数据,然后由异步线程将写操作同步到从存储服务器。

同步热备是指多份数据副本的写入操作同步完成,即应用程序收到数据服务系统的写操作成功时,多份数据都已经写成功。但是收到失败响应时,可能有部分副本或全部副本已经写成功(可能因为网络或者系统故障,无法返回操作成功响应)。这种情况下,存储服务器没有主从之分,完全对等,更便于管理和维护。


3、失效转移

若数据服务器集群中任意一台宕机,那么应用程序针对这台服务器的读写操作就要重新路由到其他服务器,保证数据访问不会失败,这个过程叫做失效转移,分为失效确认、访问转移和数据恢复。


原创粉丝点击