技術原理
為什么?
進行中的項目,有大量的第三方數據頻繁的寫入,影響了讀的效率。通過讀寫分離,可以實現讀鎖和寫鎖的競爭。讀鎖和寫鎖可以具體網上找其他資源了解。
怎么做?
1. 主從復制:主數據庫有寫操作,從數據庫自動同步。從數據庫通過I/O線程去請求主數據庫的binlog日志文件(二進制日志,包含SQL的增刪改查等,用來做備份恢復等),並寫到中繼日志中,SQL線程會讀取中繼日志,並解析成具體操作同步數據到從數據庫。
2. 讀寫分離:數據庫層面:主數據庫復制寫,從數據庫復制讀。軟件(代碼)層面:通過讀寫分離中間間,比如MyCat、shardingsphere等實現。
具體實現
數據庫層面
1. 需要打開主庫的二進制日志功能,通過配置文件修改。
(1)服務器ID命名
(2)日志功能開啟
修改完后,重啟sql服務,通過命令查看日志狀態
(3)創建一個用戶,並賦予replication slave權限。
2. 從庫設置
(1)服務命名
(2)配置相關參數,重啟服務
(3)連接主機,執行同步命令
代碼程序層面
這里使用shardingsphere實現讀寫分離。
(1)相關jar引用
(2)讀寫分離配置