復制

舊版的復制有同步和命令傳播
同步:
如上圖:
從向主發送sync,主服務器開始bgsave生成RBD并且將bgsave執行過程中執行的命令追加到AOF緩沖區。最后分別發送給從服務區
如果主服務器被修改了,那么他也需要使用命令傳播傳給從服務器
舊版本的復制主要缺陷在于斷線后和初始其實是一個樣的。
sync是一個非常耗費性能的命令
(1)他需要主服務器執行bgsave命令,耗費cpu,內存,磁盤
(2)網絡傳輸,耗費網絡資源
(3)從服務器執行還原操作,這將會阻塞服務器進程
新版本的psync命令具有完整重同步和部分重同步
完整就是最開始和sync其實是一樣的
部分就是知識回復斷線過程中的執行命令節省了很多資源

部分重同步實現:
(1)主從服務器的復制偏移量
(2)復制積壓緩沖區
(3)服務器的運行ID
積壓緩沖區的大小默認1MB,其實正常設置的大小是2*重連時間*每次發送的命令的大小

對于積壓緩沖區中其實是偏移量對應著字符
如果發現偏移量存在,就執行部分重同步,否則執行完整沖同步
服務器運行ID其實就是server判斷是初次還是不是初次,決定執行什么同步

復制:
1:設置從服務器中主服務器的IP和端口
(2)創建socket,connect
(3)發送ping
測試網絡
測試相應是否可以
(4)身份驗證
(5)發送端口
(6)同步
(7)命令傳播
心跳檢測:
(1)檢測網絡連接問題
(2)設置min-slaves選項
(3)檢測命令丟失問題

浙公網安備 33010602011771號