Replication基础(六) 复制中的三个线程(IO/SQL/Dump)

时间:2021-02-10 16:01:41

Reference:  https://blog.csdn.net/sun_ashe/article/details/82181811?utm_source=blogxgwz1

简介
在MySQL复制技术中,涉及到三个线程,分别为binlog Dump线程,IO线程,SQL回放线程。本文针对于这三个线程,简要说明。

I/O线程
上图所示,IO线程位于从实例,其作用就是作为一个客户端,建立到master实例上的TCP链接,并且发送认证信息,bingbinlog同步协议信息,然后实时的去同步阻塞的读取master发送的binlog,并且设置有超时时间,为slave_net_timeout,如果在超过设置时间内没有收到master发送的日志信息,则认为主从之间的网络异常,或者master异常,进行网络重试。其生命周期开始于start slave或者start slave io_thread,结束于stop slave或者stop slave io_thread;

Dump线程
如上图所示,Dump线程位于master实例,此线程与普通线程类似,只不过接收到的是客户端发送的binlog dump命令,所以,会发送binlog,而不是其他的数据给客户端。其生命周期开始于slave的start slave或者start slave io_thread,结束于stop slave或者stop slave io_thread。

SQL线程
SQL回放线程位于slave实例,主要作用就是读取relay log,并且进行回放操作。其生命周期开始于start slave或者start slave sql_thread,结束于stop slave或者stop slave sql_thread;

结束语
关于这三个线程更多的细节,在进阶文章中展开描述,此文作为基础入门。
---------------------
作者:sun_ashe
来源:CSDN
原文:https://blog.csdn.net/sun_ashe/article/details/82181811
版权声明:本文为博主原创文章,转载请附上博文链接!