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