主从复制(冗余):
什么是主从复制(冗余):What
把数据存储到多个节点上,
一个节点是主节点:全权负责数据写操作,并提供变更记录供从节点读取
其余节点是从节点:仅提供数据读取能力,并用作主节点挂掉的活备,开启线程监听主节点变更信息并更新本节点数据
为什么使用主从复制(冗余):Why
优势:
1 提升数据读性能,增加更多从节点进行水平扩展
2 提高故障恢复能力,主节点出现故障
读:无影响,从节点依旧可以提供读能力(数据有一定延迟)
写:指派一个从节点升级为主节点,因为从节点与主节点存储相同的数据
缺点:
1 主节点写压力增加,随着从节点增多,主节点需要向更多的从节点同步数据。主节点单点写成为瓶颈。
栗子:MySQL使用主从架构提升读能力,读写分离,降低主节点写压力,但是从节点超过10个之后写压力变大
2 主从数据不一致(主从延迟)
读:客户端读两次请求不同节点 读到的结果不同。最差情况下无法读取刚刚变更的值,客户感到迷惑
故障转移:主节点还有部分数据未同步到从节点就故障了,从节点上升为主节点后,未同步的数据丢失