資料庫讀寫分離

2021-08-16 19:11:13 字數 2331 閱讀 8928

當資料庫讀操作比較多的情況下,建議做讀寫分離

一:如果你是自建方式:

使用mysql-proxy、atlas等,主要實現讀寫操作的分離以及讀權重調整

安裝過程略,直接上配置(以atlas為例)

[mysql-proxy]

#帶#號的為非必需的配置專案

#管理介面的使用者名稱

admin-username=***

#管理介面的密碼

admin-password=***

#atlas後端連線的mysql主庫的ip和埠,可設定多項,用逗號分隔

proxy-backend-addresses=***:3306

#atlas後端連線的mysql從庫的ip和埠,@後面的數字代表權重,用來作負載均衡,若省略則預設為1,可設定多項,用逗號分隔

proxy-read-only-backend-addresses=***:3306@1,***xx:3306@2

#使用者名稱與其對應的加密過的mysql密碼,密碼使用prefix/bin目錄下的加密程式encrypt加密,下行的user1和user2為示例,將其替換為你的mysql的使用者名稱和加密密碼!

pwds=庫名1:加密密碼,庫名2:加密密碼2

#設定atlas的執行方式,設為true時為守護程序方式,設為false時為前台方式,一般開發除錯時設為false,線上執行時設為true,true後面不能有空格。

daemon=true

#設定atlas的執行方式,設為true時atlas會啟動兩個程序,乙個為monitor,乙個為worker,monitor在worker意外退出後會自動將其重啟,設為false時只有worker,沒有monitor,一般開發除錯時設為false,線上執行時設為true,true後面不能有空格。

keepalive=false

#工作執行緒數,對atlas的效能有很大影響,可根據情況適當設定

event-threads=8

#日誌級別,分為message、warning、critical、error、debug五個級別

log-level=message

#日誌存放的路徑

log-path=/usr/local/mysql-proxy/log

#sql日誌的開關,可設定為off、on、realtime,off代表不記錄sql日誌,on代表記錄sql日誌,realtime代表記錄sql日誌且實時寫入磁碟,預設為off

sql-log= on

#慢日誌輸出設定。當設定了該引數時,則日誌只輸出執行時間超過sql-log-slow(單位:ms)的日誌記錄。不設定該引數則輸出全部日誌。

sql-log-slow=1000

#例項名稱,用於同一臺機器上多個atlas例項間的區分

instance=***

#atlas監聽的工作介面ip和埠

proxy-address=0.0.0.0:3306

#atlas監聽的管理介面ip和埠

admin-address=0.0.0.0:2345

#分表設定,此例中person為庫名,mt為表名,id為分表字段,3為子表數量,可設定多項,以逗號分隔,若不分表則不需要設定該項

#tables = person.mt.id.3

#預設字符集,設定該項後客戶端不再需要執行set names語句

charset=utf8

#關閉不活躍的客戶端連線設定。當設定了該引數時,atlas會主動關閉經過'wait-timeout'時間後一直未活躍的連線。單位:秒

wait-timeout=10

#允許連線atlas的客戶端的ip,可以是精確ip,也可以是ip段,以逗號分隔,若不設定該項則允許所有ip連線,否則只允許列表中的ip連線

#client-ips = 127.0.0.1, 192.168.1

#atlas前面掛接的lvs的物理網絡卡的ip(注意不是虛ip),若有lvs且設定了client-ips則此項必須設定,否則可以不設定

#lvs-ips = 192.168.1.1

#client-ips=

----------------------------------------------完畢!--------------------------------------------

這裡有個坑:配置檔案命名的時候不要使用相同的字首,例如:admin.cnf  和 admin***.cnf 當你重啟admin.cnf的時候 另外乙個也會重啟,這是因為在  bin/

mysql-proxyd配置指令碼問題,你也可以修改指令碼避免這種問題

pwds=  這裡加密密碼不是資料庫的原始密碼!!!

二:雲平台下使用讀寫分離:

例如阿里雲下可以直接開通使用,開通後可以在資料庫連線下調整讀權重,請參考:

資料庫讀寫分離

隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...

資料庫讀寫分離

隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...

資料庫讀寫分離

隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策 略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share ...