博學谷 - mysql資料庫效能優化筆記05 - 讀寫分離中介軟體MaxScale
1.maxscale下載地址
https://downloads.mariadb.com/files/MaxScale
2.安裝maxscale命令
yum install libaio.x86_64 libaio-devel.x86_64 novacom-server.x86_64 libedit -y
wget https://downloads.mariadb.com/MaxScale/1.4.5/centos/7/x86_64/maxscale-1.4.5-1.centos.7.x86_64.rpm
rpm -ivh maxscale-1.4.5-1.centos.7.x86_64.rpm
2.配置maxscale
建立監控使用者:
create user 'maxmon'@'%' identified by '123456';
grant replication slave,replication client on *.* to 'maxmon'@'%';
建立路由使用者:
create user 'maxrou'@'%' identified by '123456';
grant select on mysql.* to 'maxrou'@'%';
flush privileges;
配置maxscale.cnf檔案:
vi /etc/maxscale.cnf
配置server:
[server1]
type=server
#自己的伺服器地址
address=111.111.235.111
#自己的伺服器埠
port=3306
protocol=MySQLBackend
[server2]
type=server
#自己的伺服器地址
address=111.111.187.111
#自己的伺服器埠
port=3306
protocol=MySQLBackend
[MySQL Monitor]
type=monitor
module=mysqlmon
#改成上述配置的伺服器
servers=server1,server2
#主資料庫的監聽使用者的賬號
user=maxmon
#主資料庫監聽使用者的密碼
passwd=123456
monitor_interval=10000
#因為配置了Read-Write Service模組,所以該模組的servers、user、passwd清空
#因為假如去掉該段程式碼的話,會導致啟動maxscale失敗
[Read-Only Service]
type=service
router=readconnroute
servers=
user=
passwd=
router_options=slave
# ReadWriteSplit documentation:
# https://github.com/mariadb-corporation/MaxScale/blob/master/Documentation/Routers/ReadWriteSplit.md
[Read-Write Service]
type=service
router=readwritesplit
#伺服器的名稱
servers=server1,server2
#主資料庫路由使用者的賬號
user=maxrou
#主資料庫路由使用者的密碼
passwd=123456
max_slave_connections=100%
3.啟動 maxscale
執行命令:
maxscale --config=/etc/maxscale.cnf
檢視maxscale啟動狀態:
命令:
netstat -ntelp
結果:
[root@iZbp1e9mxelwe7pwimpw8sZ ~]# netstat -ntelp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:4006 0.0.0.0:* LISTEN 0 504699 21342/maxscale
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 997 22771 1153/mysqld
tcp 0 0 0.0.0.0:6603 0.0.0.0:* LISTEN 0 504700 21342/maxscale
tcp 0 0 0.0.0.0:22222 0.0.0.0:* LISTEN 0 26262 1573/sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 26264 1573/sshd
tcp6 0 0 :::80 :::* LISTEN 0 24734 1483/docker-proxy
4006 是 Read-Write Listener 使用的埠,用於連線 MaxScale
6603 是 MaxAdmin Listener 使用的埠,用於 MaxScale 管理器
登 錄 MaxScale 管 理 器 , 查 看 一 下 數 據 庫 連 接 狀 態 , 默 認 的 用 戶 名 和 密 碼 是
admin/mariadb
登入maxscale檢視狀態:
maxadmin --user=admin --password=mariadb
list servers
[root@iZbp1e9mxelwe7pwimpw8sZ ~]# maxadmin --user=admin --password=mariadb
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server | Address | Port | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
server1 | 111.111.235.111 | 3306 | 1 | Master, Running
server2 | 111.111.187.111 | 3306 | 1 | Slave, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale>
4.測試maxscale
在主資料庫master建立測試使用者:
create user 'rtest'@'%' identified by '111111';
grant ALL PRIVILEGES on *.* to 'rtest'@'%';
使用mysql客戶端到連線maxscale:
mysql -urtest -p'111111' -h'192.168.33.11' -P4006
測試命令:
select @@hostname;
start transaction;
select @@hostname;
rollback;
select @@hostname;
mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| ljy |
+------------+
1 row in set (0.00 sec)
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@hostname;
+-------------------------+
| @@hostname |
+-------------------------+
| iZbp1e9mxelwe7pwimpw8sZ |
+-------------------------+
1 row in set (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| ljy |
+------------+
1 row in set (0.00 sec)
mysql>
測試步驟及結果解釋:
第一次select @@hostname;使用的是salve進行讀操作,開啟事務後start transaction;使用的是master進行寫操作,事務回滾後rollback;使用的是salve進行讀操作.
5.文章參考連結
a. https://www.boxuegu.com
b. https://downloads.mariadb.com/files/MaxScale
相關文章
- MySQL cetus 中介軟體 讀寫分離MySql
- MySQL 中介軟體Atlas 實現讀寫分離MySql
- 資料庫中介軟體sharding-jdbc實現讀寫分離資料庫JDBC
- 【MYsql】Maxscale中介軟體使用MySql
- Mycat中介軟體實現Mysql主從讀寫分離MySql
- MySQL中介軟體之ProxySQL(3):初試讀寫分離MySql
- MyCat 讀寫分離 資料庫分庫分表 中介軟體 安裝部署,及簡單使用資料庫
- MysqL讀寫分離的實現-Mysql proxy中介軟體的使用MySql
- mysql優化之讀寫分離MySql優化
- 【資料庫訪問優化方案之讀寫分離】資料庫優化
- 資料庫讀寫分離資料庫
- 資料庫中介軟體 Sharding-JDBC 原始碼分析 —— JDBC實現與讀寫分離資料庫JDBC原始碼
- Mycat中介軟體實現Percona Cluster讀寫分離
- 資料庫的讀寫分離資料庫
- 大資料資料庫讀寫分離分庫分表大資料資料庫
- 高可用Mysql架構_Mysql主從複製、Mysql雙主熱備、Mysql雙主雙從、Mysql讀寫分離(Mycat中介軟體)、Mysql分庫分表架構(Mycat中介軟體)的演變MySql架構
- 博學谷 - CSS筆記05 - CSS 的複合選擇器CSS筆記
- 淺談高效能資料庫叢集——讀寫分離資料庫
- 資料庫 讀寫分離 為什麼提高效能資料庫
- 使用proxysql 1.4.14中介軟體實現mysql 5.7.26主從的讀寫分離MySql
- MySQL 中讀寫分離資料延遲MySql
- 資料庫讀寫分離Master-Slave資料庫AST
- Discuz!NT資料庫讀寫分離方案資料庫
- 高效能MySQL讀書筆記---索引優化MySql筆記索引優化
- 資料庫治理利器:動態讀寫分離資料庫
- Spring實現資料庫讀寫分離Spring資料庫
- MySQL單表百萬資料記錄分頁效能優化MySql優化
- 深度:微服務化的資料庫設計與讀寫分離微服務資料庫
- MySQL Amoeba讀寫分離MySql
- Amoeba for mysql讀寫分離MySql
- MySQL讀寫分離AtlasMySql
- Sharding-Jdbc學習筆記一之讀寫分離mysql安裝篇JDBC筆記MySql
- golang saas框架,資料庫級別隔離、讀寫分離Golang框架資料庫
- 資料讀寫壓力大,讀寫分離
- MySQL資料庫的效能優化指南MySql資料庫優化
- 分散式資料庫中介軟體 MyCat | 分庫分表實踐分散式資料庫
- Mysql讀寫分離方案-MySQL Proxy環境部署記錄MySql
- 【筆記】分散式Oracle資料庫中介軟體的核心作用筆記分散式Oracle資料庫