mysql router 中間件 配置


mysql router 解決高可用,讀寫分離,負載均衡

1 首先配置好主從同步

2 下載mysql-router

wget https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-8.0.18-linux-glibc2.12-x86_64.tar.xz

 

tar -Jxvf mysql-router-8.0.18-linux-glibc2.12-x86_64.tar.xz

3 修改配置文件

 比如解壓的目錄是

/usr/local/mysql-router/

  

cp /usr/local/mysql-router/share/doc/mysqlrouter/sample_mysqlrouter.conf /etc/mysql-route/mysqlrouter.conf

  

[DEFAULT]
# 日志存放目錄
logging_folder = /data/log/mysql-route
# 插件存放目錄
plugin_folder = /usr/local/mysql-router/lib/mysqlrouter
# 配置文件存放目錄
config_folder = /etc/mysql-route
# 運行目錄
runtime_folder = /var/run
 
[logger]
# 日志運行級別
level = debug
 
# 主節點故障轉移配置
[routing:basic_failover]
# 寫節點地址
bind_address=10.10.81.134
# 寫節點端口
bind_port = 7001
# 模式,讀寫
mode = read-write
# 主節點地址:默認情況下第一台主數據庫為寫主庫,當第一台主數據庫DOWN機后,第二台數據庫被提升為主庫
destinations = 10.10.50.60:3306,10.10.117.231:3306
 
# 從節點負載均衡配置
[routing:balancing]
# 綁定的IP地址
bind_address=10.10.81.134
# 監聽的端口
bind_port = 7002
# 連接超時時間
connect_timeout = 3
# 最大連接數
max_connections = 1024
# 后端服務器地址
destinations = 10.10.117.231:3306
# 模式:讀還是寫
mode = read-only
 
[keepalive]
interval = 60

 要注意的點:

1)目錄首先先建好,

2)bind_address綁定的ip地址要是內網的(ifconfig),配置公網地址會啟動失敗。

3) mode項不是看上去理解的字面意思,mode=read-write,代表,同時只有一個可用,一開始是首個可用,如果首個掛了之后,請求自動落到第二個服務端,后面及時第一個恢復好了,也不會有請求給第一次個了

   mode=reqd-only時,是請求負載輪詢給配置的服務端,當其中一個服務端掛了,請求就不再給這個恢復端,但是當這個服務又好了之后,他會有心跳去檢查,查到壞的服務端好了之后,這個服務又會重新加入到輪詢

4) 唯一一個缺點是,mysql-router不能判斷sql語句是寫操作還是讀操作,所以,一般是配置兩個端口,業務端自己來判斷比如寫的的端口調用7001,讀的端口調7002.

啟動:

/usr/local/mysql-router/bin/mysqlrouter -c /etc/mysql-route/mysqlrouter.conf &

 通過日志來檢查是否檢測成功

tail -f /data/log/mysql-route/mysqlrouter.log 

 如果成功會有keepalive日志,和連接日志

 

 下面介紹怎么測試:

你就可以用本前主機

mysql -h ip地址 -uroot -P7001 -p

ip地址就是mysql-router配置文件設置的bind_address項地址,再輸入密碼

這個時候你可以看log日志,中間件給你轉發是哪個真實mysql服務端,

quit退出,再重新請求,是不是會給你轉發到另外一台mysql服務端。

把主服務器mysql stop,再多次連接,是不是不會轉發到停止的這台來了,

重放啟動停止的服務器,在read_only時,是不是又會使用此台服務器.

mysql-router目前沒有停止命令,需要用kill命令殺死進程,再運行

 

 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM