根據示意圖,簡單再把mysql主從框架的圖聊一下:
1、主從框架是一種冗餘設計,也是爲了高可用,當主庫掛了,可以切到從庫,確保業務可以正常使用;
2、主從設計,從dao層,可以控制DML操作,只操作主庫,查詢只查詢從庫,這就是所謂的讀寫分離;
3、再說一下主從同步的問題:
主庫日常的DML操作,會記錄binary log日誌,從庫向主庫獲取數據變化的日誌,從將獲取的日誌寫入relay log,從庫啓動單獨的線程,現在數據變化的SQL在從庫上重新執行一遍。
4、這樣看MySQL的主從數據一致性,不是強一致性,符合base理論,是最終一致性;
當主從複製延遲的時候,數據不一致的情況就出現了,用戶操作提交的訂單,操作完了,立馬查詢,由於主從同步的延遲問題,訂單可能查詢不到,客人困惑不已。