Master Slave Replication

系统设计中Replica是必不可少的,主从复制是常用的一种实现replica的方式。
一句话概括什么是Master Slave Replication: Master数据源的数据异步的备份到Slaves数据源。
无论在Mysql, Redis, MongoDB 等类型数据存储中都是存在直接可使用的主从复制,通过配置就可以直接使用,这里不提。

MySQL Master-Slave Replication Architecture

[System Design] Master Slave Replication Architecture

  • 所有Master的数据库的操作,都会记录在二进制日志中
  • Slave的IO Thread连接Master数据库查看Binary Log
  • Slave 不断添加Binary Log 到Relay Log
  • SQL Thread 从Relay log读取操作并执行对应的操作,也会写到自己的Binary Log

这个Replication 可以是Asynchronous or Semi-Synchronous的。

Use Case

Master数据库down了,我们还有Slave数据库

此时我们可以通过预先定义好的Master Slave Election 算法,在Slaves里面选择一个new Master

读写分离 Read/Write Splitting

[System Design] Master Slave Replication Architecture
一般来说,我们Write Request是远远少于 << Read Request, 所以我们可以做读写分离来scale up. 这在系统设计中的面试中几乎都可以扯上。

相关文章:

  • 2022-12-23
  • 2021-06-10
  • 2021-09-22
  • 2021-09-16
  • 2022-12-23
  • 2021-09-26
  • 2021-12-26
猜你喜欢
  • 2021-11-24
  • 2021-08-17
  • 2021-09-25
  • 2022-12-23
  • 2022-01-11
  • 2021-11-20
  • 2021-05-02
相关资源
相似解决方案