数据库主从架构原理
在很多大型的购物网站中如、如京东、天猫等都会用到高可用架构常见就有Redis分布式+Mysql分布式架构,据不完全统计京东就有2亿的用户量请不要担心京东数据量问题,因为它们有成千上万台数据库服务器分别管理不同地域的用户,就是我们来解决也可以根据用户访问的DNS地址,京东可以分配到不同的服务器上的。同时也可以分库分表,大库拆分成小库大表拆分成小表的策略来解决。而高可用架构的组成当中最为基础常用的方法就是主从架构。
比如MySQL主从复制功能通过主从复制可以实现很多好处,读写分离,扩展性高但是主从复制架构的根本目标是保证网站的高可用,当Master宕机,能够快速的切换到Slave库。
主从复制架构
从主从复制原理:
1、Mysql主从同步是异步复制过程,中间同步数据会有延迟,整个过程开启三个线程,分别是master开
启IO线程,Slave开启IO和SQL线程。
2、还需要在Master上开启bin—log工程,是主从复制最为核心的组件,二进制日志文件,文件会记录数
据库中增,删,改,插入的SQL语句(create database jfedu),bin-log不记录查询语句。
3、从库就可以基于master端bin-log日志来同步数据,读取bin-log日志文件中的SQL语句,并且把SQL语
句放在本地去执行。
4、Slave库通过I/O线程连接Master,发起数据请求,请求从某个指定bin-log文件,位置点之后的SQL语
句,“请你发送SQL内容给我”。
5、Master数据库收到Slave的请求,以IO线程响应,在master端看到的bin-log dump线程,将bin-log
日志中指定位置点的SQL内容dump出来,发送给Slave数据库服务器。
6、当Slave库收到bin-log日志内容之后,将信息追加存储到Relay-log中继日志,同时会生成
master.info(记录master IP,用户名,密码,bin-log 文件名,Postition点)。
7、Slave 数据库服务器实时启动SQL线程,SQL线程检测Relay-log日志中是否有更新,内容有更新的话
,解析日志中SQL语句,并且在本地数据库中去执行。
8、执行完的效果,Slave库Master数据保持一致。
不同的关系型数据库有不同配置方法可以自行百度查询相关配置方法。