mysql 读写分离 max_使用Maxscale实现mysql读写分离

一、安装配置

前提:先配置好mysql的主从,Maxscale会根据主从复制信息来判断Master和slave

注:不能配置mysql互为主从,如果互为主从,两台都会被认为slave,在这种情况下,写请求会被拒绝,只接受读请求。

1.1.安装

官网下载对应的rpm包,wget  https://downloads.mariadb.com/MaxScale/2.0.3/centos/6server/x86_64/maxscale-2.0.3-1.centos.6.x86_64.rpm

rpm -ivh maxscale-2.0.3-1.centos.6.x86_64.rpm

生成配置文件 /etc/maxscale.conf,配置文件由多个配置模块组成vi /etc/maxscale.conf

#全局配置:

[maxscale]

threads=auto

log_info=1

log_notice=1

log_warning=1

#后端mysql定义

[server1]

type=server

address=192.168.10.1

port=3306

protocol=MySQLBackend

[server2]

type=server

address=192.168.10.2

port=3306

protocol=MySQLBackend

#监控配置

[MySQL Monitor]

type=monitor

module=mysqlmon      #监控模块使用mysqlmon

servers=server1,server2

user=admin          #admin监控后端mysql的复制状况,必须具有REPLICATION CLIENT权限

passwd=123456

monitor_interval=10000

script=/opt/mysql_monitor.sh    #定义事件触发脚本执行

events=master_down            #当master down时,执行上面的脚本

[Read-Write Service]

type=service

router=readwritesplit       #读写分离路由模式

servers=server1,server2

user=maxscale    #该用户从后端mysql获取用户信息,对客户端进行身份验证,必须具有mysql.user table的select权限

passwd=maxscale

max_slave_connections=100%

max_slave_replication_lag=3600000   #最大允许slave的数据落后master 3600秒,仍然可用

connection_timeout=300

router_options=master_failure_mode=error_on_write #允许master down掉,slave仍然可读

#router_options=master_accept_reads=true      #允许master接受读请求

[Read-Write Listener]

type=listener

service=Read-Write Service

protocol=MySQLClient

port=3306

#管理服务配置

[MaxAdmin Service]

type=service

router=cli

#管理服务监听

[MaxAdmin Listener]

type=listener

service=MaxAdmin Service

protocol=maxscaled

socket=default

二、管理

Maxscale提供了maxadmin命令用于查看管理[root@server ~]# maxadmin  list -

Unknown or missing option for the list command. Valid sub-commands are:

clients    List all the client connections to MaxScale

dcbs       List all the DCBs active within MaxScale

filters    List all the filters defined within MaxScale

listeners  List all the listeners defined within MaxScale

modules    List all currently loaded modules

monitors   List all monitors

services   List all the services defined within MaxScale

servers    List all the servers defined within MaxScale

sessions   List all the active sessions within MaxScale

threads    List the status of the polling threads in MaxScale[root@server ~]# maxadmin list servers

Servers.

-------------------+-----------------+-------+-------------+--------------------

Server             | Address         | Port  | Connections | Status

-------------------+-----------------+-------+-------------+--------------------

server1            | 192.168.10.1      |  3306 |           0 | Master, Running

server2            | 192.168.10.2     |  3306 |           0 | Slave, Running

-------------------+-----------------+-------+-------------+--------------------

三、高可用性

Maxscale默认提供读写分离和读的高可用性,要实现写的高可用性,可以使用两种途径:

1.需要使用Multi-MasterMonitor监控模块,不同于上文使用的mysqlmon模块,该模块是通过read_only参数来选举Master和Slave,结合脚本可以实现在Master 宕机的时候,取消slave的read_only属性,这样slave就会变成Master

2.使用高可用软件MMM

使用Maxscale实现mysql读写分离

标签:maxscale

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://3379770.blog.51cto.com/3369770/1913878

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值