mysqlroute配置和使用
MySQL Router是MySQL官方推出的一個輕量級MySQL中間件是處於應用client和dbserver之間的輕量級代理程序,它能檢測,分析和轉發查詢到後端數據庫實例,並把結果返回給client。是mysql-proxy的一個替代品.但是和mysql-proxy有區別。mysqlroute使用了兩個端口進行讀寫分離
默認端口號 | 作用 | 說明 |
---|---|---|
7001 | 默認的是讀寫端口 | mode = read-write默認情況下第一臺主數據庫為寫主庫,當第一臺主數據庫DOWN機後,第二臺數據庫被提升為主庫,如果第一臺不出問題,第二臺是不會被使用的。可以作高可用使用 |
7002 | 默認是讀端口 | 如果設置以後,根據設置的列表進行輪詢使用 |
MySQL Router接受前端應用程序請求後,根據不同的端口來區分讀寫,把連接讀寫端口的所有寫和查詢發往主庫,把連接只讀端口的查詢以輪詢方式發往多個從庫,從而實現讀寫分離的目的。讀寫返回的結果會交給MySQL Router,由MySQL Router返回給客戶端的應用程序。
我理解的是mysql-proxy在使用的時候與連接單臺數據庫操作一樣,而mysql route則是把多臺主機的讀寫集中在一起,進行讀寫分離,在使用的時候還是需要程序進行改動。具體性能測試,在接下的文章中會慢慢測試
安裝可以使用多種方式,因為測試我選擇了二進制包
安裝包下載:
http://dev.mysql.com/downloads/router/
http://downloads.mysql.com/docs/mysql-router-en.pdf
我選擇了二進制安裝:
系統是centos7-1604-mini
1.下載
cd /usr/local/ && wget -c https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-2.0.4-linux-glibc2.12-x86-64bit.tar.gz
cd /usr/local/ && tar -zxvf mysql-router-2.0.4-linux-glibc2.12-x86-64bit.tar.gz
ln -s mysql
2.創建必要的文件,復制配置文件
mkdir /etc/mysql-route/
mkdir /var/log/mysql-route
chown mysql:mysql /var/log/mysql-route
cp /usr/local/mysql-router/share/doc/mysqlrouter/sample_mysqlrouter.ini /etc/mysql-route/mysqlrouter.conf
mysqlrouter.conf修改
[DEFAULT]logging_folder = /var/log/mysql-route
plugin_folder = /usr/local/mysql-router/lib/mysqlrouter
config_folder = /etc/mysql-route
runtime_folder = /var/run/ [logger]level = INFO
# 主節點故障轉移配置
[routing:basic_failover]
# 寫節點地址
bind_address=0.0.0.0
# 寫節點端口
bind_port = 7001
# 模式,讀寫
mode = read-write
# 默認情況下第一臺主數據庫為寫主庫,當第一臺主數據庫DOWN機後,第二臺數據庫被提升為主庫
destinations = 192.168.10.191:3306
# 從節點負載均衡配置
[routing:balancing]
# 綁定的IP地址
bind_address=0.0.0.0
# 監聽的端口bind_port = 7002
# 連接超時時間
connect_timeout = 3
# 最大連接數
max_connections = 1024
# 後端服務器地址.默認讀進行輪詢
destinations = 192.168.10.192:3306,192.168.10.191:3306
# 模式:讀還是寫
mode = read-only
[keepalive]interval = 60
8、啟動mysqlrouter
mysqlrouter --config /usr/local/mysqlrouter/etc/mysqlrouter.conf &測試通過mysqlrouter這個中間件來連接mysql庫
本文出自 “夢想照進現實” 博客,請務必保留此出處http://lookingdream.blog.51cto.com/5177800/1923707
mysqlroute配置和使用