Spring Cloud 使用MySQL主從同步實現(xiàn)讀寫分離,當主數(shù)據(jù)庫寫操作時,從數(shù)據(jù)庫會實時讀取并執(zhí)行二進制日志中的操作,保證與主數(shù)據(jù)庫數(shù)據(jù)的一致性。查看binlog信息可以查看二進制日志文件的文件名和偏移量...
Spring Cloud 微服務系列文章,點擊上方合集↑
1. 開頭
在生產(chǎn)環(huán)境中,為了應對大量的讀寫請求并減輕數(shù)據(jù)庫的負載壓力,常常會使用MySQL主從同步來實現(xiàn)讀寫分離的架構(gòu)。通過這種架構(gòu),主數(shù)據(jù)庫負責處理寫操作,而從數(shù)據(jù)庫則專注于處理讀操作,達到了在提高性能的同時保證了數(shù)據(jù)的高可用性。
主從同步的實現(xiàn)原理主要依賴于MySQL的二進制日志binlog功能。當在主數(shù)據(jù)庫上進行寫操作時,MySQL會將這些操作記錄下來并保存為二進制文件。從數(shù)據(jù)庫會持續(xù)監(jiān)測主數(shù)據(jù)庫上的二進制日志,實時讀取并執(zhí)行這些日志中的操作,從而保持與主數(shù)據(jù)庫的數(shù)據(jù)一致性。
2. 主數(shù)據(jù)庫(master)
2.1 my.cnf配置文件
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
character_set_server=utf8mb4
server-id 配置數(shù)據(jù)庫的id,主數(shù)據(jù)庫配置為1
log-bin=mysql-bin開啟二進制記錄
binlog-ignore-db 配置不需要同步的數(shù)據(jù)庫
2.2 查看binlog信息
SHOW MASTER STATUS命令用于查看MySQL主服務器當前正在使用的二進制日志文件的文件名和偏移量信息。
mysql -uroot -p
show master status
binlog文件名File mysql-bin.000003 和偏移量Position 188記一下,后面slave需要用。
3. 從數(shù)據(jù)庫(slave)
3.1 my.cnf配置文件
[mysqld]
server-id=2
read_only=1
server-id 配置數(shù)據(jù)庫的id,從數(shù)據(jù)庫配置為2
read_only=1 只讀模式
3.2 配置同步參數(shù)
進入mysql命令控制臺
mysql -uroot -p
CHANGE MASTER TO MASTER_HOST='192.168.31.163',\
MASTER_PORT=3312,\
MASTER_USER='root',\
MASTER_PASSWORD='123456',\
MASTER_LOG_FILE='mysql-bin.000003',\
MASTER_LOG_POS=188
3.3 開啟主從同步
在從服務器上執(zhí)行以下命令,啟動主從同步:
START SLAVE;
可以使用以下命令檢查主從復制的狀態(tài):
SHOW SLAVE STATUS\G
查看輸出中Slave_IO_Running和Slave_SQL_Running的值。如果這些狀態(tài)為yes,則表示主從同步已成功建立。
用Navicat等數(shù)據(jù)庫工具去測試一下,master更新數(shù)據(jù)立馬被同步到slave。
4. 結(jié)尾
本文我們學習了如何配置和管理MySQL主從同步,實現(xiàn)了在生產(chǎn)環(huán)境中的讀寫分離和高可用性。實際情況下:寫數(shù)據(jù)庫只有一個,讀數(shù)據(jù)庫會有多個,是一主多從的架構(gòu)。
Spring Cloud 微服務系列 完整的代碼在倉庫的sourcecode/spring-cloud-demo目錄下。
gitee(推薦):https://gitee.com/cunzaizhe/xiaohuge-blog
github:https://github.com/tigerleeli/xiaohuge-blog
關(guān)注微信公眾號:“小虎哥的技術(shù)博客”,讓我們一起成為更優(yōu)秀的程序員!
原文來源:https://mp.weixin.qq.com/s/NNPHqE5SDu1aVfe9m4TZTw
來源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺,并已注明來源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請聯(lián)系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內(nèi)容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權(quán)及插圖屬于原作者。
Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺保留所有權(quán)利
蘇公網(wǎng)安備32010402000125
蘇ICP備14051488號-3技術(shù)支持:南京博盛藍睿網(wǎng)絡(luò)科技有限公司
南京思必達教育科技有限公司版權(quán)所有 百度統(tǒng)計