主要涉及三個線程: binlog 線程、I/O 線程和 SQL 線程。
binlog 線程 : 負責將主服務器上的數據更改寫入二進制日志中。
I/O 線程 : 負責從主服務器上讀取二進制日志,并寫入從服務器的中繼日志中。
SQL 線程: 負責讀取中繼日志并重放其中的 SQL 語句。
全同步復制
主庫寫入binlog后強制同步日志到從庫,所有的從庫都執行完成后才返回給客戶端,但是很顯然這個方式的話性能會受到嚴重影響。
半同步復制
和全同步不同的是,半同步復制的邏輯是這樣,從庫寫入日志成功后返回ACK確認給主庫,主庫收到至少一個從庫的確認就認為寫操作完成。