1、orchestrator环境请看上一篇:https://blog.51cto.com/860143/2429558

2、maxscale安装

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |     sudo bash -s -- --mariadb-maxscale-version="2.3"
yum search maxscale
sudo yum install maxscale
maxkeys /var/lib/maxscale/ 
maxpasswd /var/lib/maxscale/ 123456
chown maxscale.maxscale /var/lib/maxscale/.secrets
vim /etc/maxscale.cnf
systemctl start maxscale
systemctl status maxscale.service
cd /var/log/maxscale/
vim maxscale.log 
systemctl start maxscale

3、maxscale配置文件

[root@mgr1 maxscale]# cat /etc/maxscale.cnf
# MaxScale documentation:
# https://mariadb.com/kb/en/mariadb-enterprise/mariadb-maxscale-23/

# Global parameters
#
# Complete list of configuration options:
# https://mariadb.com/kb/en/mariadb-maxscale-23-mariadb-maxscale-configuration-usage-scenarios/

[maxscale]
threads=auto

# Server definitions
#
# Set the address of the server to the network
# address of a MariaDB server.
#

[server1]
type=server
address=192.168.56.14
port=3306
protocol=MariaDBBackend

[server2]
type=server
address=192.168.56.15
port=3306
protocol=MariaDBBackend

[server3]
type=server
address=192.168.56.16
port=3306
protocol=MariaDBBackend
# Monitor for the servers
#
# This will keep MaxScale aware of the state of the servers.
# MariaDB Monitor documentation:
# https://mariadb.com/kb/en/mariadb-maxscale-23-mariadb-monitor/

[MariaDB-Monitor]
type=monitor
module=mariadbmon
servers=server1,server2,server3
user=orchestrator
password=0FFC28BC3A8F402F10B0B798E347FD9B
monitor_interval=2000
# 当复制slave全部断掉时,maxscale仍然可用,将所有的访问指向master节点
detect_stale_master=true

# Service definitions
#
# Service Definition for a read-only service and
# a read/write splitting service.
#

# ReadConnRoute documentation:
# https://mariadb.com/kb/en/mariadb-maxscale-23-readconnroute/

[Read-Only-Service]
type=service
router=readconnroute
servers=server1,server2,server3
user=orchestrator
password=0FFC28BC3A8F402F10B0B798E347FD9B
router_options=slave


# ReadWriteSplit documentation:
# https://mariadb.com/kb/en/mariadb-maxscale-23-readwritesplit/

[Read-Write-Service]
type=service
router=readwritesplit
servers=server1,server2,server3
user=orchestrator
password=0FFC28BC3A8F402F10B0B798E347FD9B

# This service enables the use of the MaxAdmin interface
# MaxScale administration guide:
# https://mariadb.com/kb/en/mariadb-maxscale-23-maxadmin-admin-interface/

[MaxAdmin-Service]
type=service
router=cli

# Listener definitions for the services
#
# These listeners represent the ports the
# services will listen on.
#

[Read-Only-Listener]
type=listener
service=Read-Only-Service
protocol=MariaDBClient
port=4008

[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
port=4006

[MaxAdmin-Listener]
type=listener
service=MaxAdmin-Service
protocol=maxscaled
socket=default
[root@mgr1 maxscale]#

4、测试过程,把原来的主关闭,并以从库的方式重启,下面是maxscale自动发现的过程状态展示

[root@mgr1 maxscale]# maxadmin 
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Slave of External Server, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Master, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Master, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Down
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Master, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Down
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Master, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Down
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Master, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Slave of External Server, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Master, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Slave of External Server, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Master, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Slave of External Server, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server             | Address         | Port  | Connections | Status              
-------------------+-----------------+-------+-------------+--------------------
server1            | 192.168.56.14   |  3306 |           0 | Master, Running
server2            | 192.168.56.15   |  3306 |           0 | Slave of External Server, Running
server3            | 192.168.56.16   |  3306 |           0 | Slave of External Server, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale> list servers