【mariadb主从架构的工做原理】sql
主节点写入数据之后,保存到二进制文件中,从节点生成IO线程和sql线程,IO线程请求读取二进制文件;主节点生成的dump线程,将数据发送到中继日志中,sql线程读取中继日志,进行回放,保存在数据库中进行同步。数据库
mariadb主从架构只有一个从节点的时候会生成一个dump thread,主从架构至少三个thread。当从节点多的时候,主节点就要生成多个dump线程,会对主节点的性能形成影响。安全
所以,在主节点和从节点之间加入引擎blackhole(不可读不可写),只用来存储二进制日志文件(串行记录),来减轻主节点的压力。【解决方案】架构
在写入二进制文件的时候有必定的延迟,数据大时从节点的同步也一定会有更大的延迟,可是有延迟并不必定表明很差,当有误操做的时候,由于有延迟就能够掐断中间的链接,从而用从节点去恢复数据。异步
【异步】一个请求信息发出,不须要等待返回值,就能够进行下一步操做。优势:效率高 缺点:不安全性能
【实时同步】一个请求信息发出,必须有一个返回值,才能执行下一步,优势:安全 缺点:效率低spa
异步与实时同步是相对的两个概念。线程
注意:主从架构是异步的。日志
1.【MHA】主机高可用,预防主节点单点故障的解决方案,部在另外的主机blog
master high avilable,经过配置文件监控主从架构的,能够监控多个主从架构;当主节点down掉后,MHA会在从节点中选一个代替主节点。
2.【互为主备】主主架构
主从架构互为主备的缺点:当sql语句发生冲突时,可能会形成数据的不一致
优势:解决单点故障
企业中读的多的时候,或者只读的时候,能够用主主。
3.【galera集群】多主
galera集群多用于关键性业务,由于galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性。
一条事务同时提交,预防单点故障
优势:没有延迟,保证数据的一致性(实时同步)
缺点:性能会降低
协议:wsrep