当前位置: 代码迷 >> 综合 >> [System Design] Master Slave Replication Architecture
  详细解决方案

[System Design] Master Slave Replication Architecture

热度:74   发布时间:2024-01-18 08:13:57.0

Master Slave Replication

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

MySQL Master-Slave Replication Architecture

MySQL 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

数据库读写分离
一般来说,我们Write Request是远远少于 << Read Request, 所以我们可以做读写分离来scale up. 这在系统设计中的面试中几乎都可以扯上。

  相关解决方案