什么是数据复制技术?
数据复制技术实际就是指,如何让主备数据库保持数据一致的技术。
数据复制技术原理及应用
多种数据复制技术方法:
- 第一类方法,比较注重一致性,比如同步复制技术;
- 第二类方法,则更注重可用性,比如异步复制技术;
- 第三类方法,是介于前两者之间的,比如半同步复制技术。
同步复制技术原理及应用
同步复制技术是指,当用户请求更新数据时,主数据库必须要同步到备数据库之后才可给用户返回,即如果主数据库没有同步到备数据库,用户的更新操作会一直阻塞。这种方式保证了数据的强一致性,但牺牲了系统的可用性。
- MySQL 集群的读写分离就是一个典型实例。
- MySQL 集群支持的全复制模式就采用了同步复制技术。
异步复制技术原理及应用
异步复制技术是指,当用户请求更新数据时,主数据库处理完请求后可直接给用户响应,而不必等待备数据库完成同步,即备数据库会异步进行数据的同步,用户的更新操作不会因为备数据库未完成数据同步而导致阻塞。显然,这种方式保证了系统的可用性,但牺牲了数据的一致性。
- MySQL 集群默认的数据复制模式采用的是异步复制技术
- 异步复制技术大多应用在对用户请求响应时延要求很高的场景
半同步复制技术原理及应用
半同步复制技术的核心是,用户发出写请求后,主数据库会执行写操作,并给备数据库发送同步请求,但主数据库不用等待所有备数据库回复数据同步成功便可响应用户,也就是说主数据库可以等待一部分备数据库同步完成后响应用户写操作执行成功。
半同步复制技术通常有两种方式:
- 一种是,当主数据库收到多个备数据库中的某一个回复数据同步成功后,便可给用户响应写操作完成;
- 另一种是,主数据库等超过一半节点(包括主数据库)回复数据更新成功后,再给用户响应写操作成功。