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