使用Maxscale实现mysql读写分离
admin
2023-05-20 04:41:53
0

MaxScale 是 MariaDB 的产品之一,可以很方便的实现读写分离方案;并且提供了读写分离的负载均衡和高可用性保障。

一、安装配置

前提:先配置好mysql的主从,Maxscale会自动的根据主从复制信息来判断Masterslave

注:不能配置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

maxscale的配置文件为:/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时,执行上面的脚本,maxscale内置了很
                                 多的events
#读写分离service
[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 fail的时候,取消slave的read_only属性,将slave提升为Master

2.使用高可用软件MMM


相关内容

热门资讯

Jeff Dean最新访谈:基... 当基础模型变得越来越强,两三个人组成的创业团队,还有机会与谷歌这样的科技巨头竞争吗? Jeff De...
42倍需求暴涨背后:三个转行做... (图片来源:AI生成) 出品|搜狐科技 作者|李保铭 AI不仅在降本增效,还在催生新职业。 第一批吃...
英伟达神话出现裂缝:AI革命为... ► 文 观察者网心智观察所 AI赛道狂飙两年,全球科技巨头疯狂砸钱买芯片、建数据中心。可就在不久之...
借助“芯”“机”“网”“电”关... 央视网消息:当前,全球人工智能产业规模快速扩张,这背后是算力产业链的高效支撑。芯片、整机、网络、能源...
酸菜坑发生中毒事故致4人死亡,... 澎湃新闻记者 吕新文2025年6月15日,海城市兴海街道大王社区一农户在清理酸菜坑时有4人晕倒,救出...
岛国改名了,换名不换姓!又该换... 从7月30号起,瑙鲁正式改名为“瑙埃罗”(Naoero)。总统办公室发布的新闻通稿▼这个国家位于南太...
台经济主管部门用“烂菜叶说”替... 【环球网报道 记者 徐思琦】据TVBS新闻网等台媒8月3日报道,台湾企业“中联油脂”生产的大豆色拉油...
逼近40℃,“制服蒸笼”困住环... 7月下旬,武汉多雨,气温在35℃左右浮动。晴天时阳光暴晒,像火在烧,环卫工方诚觉得,一出门就像“跨进...
诺兰在北京接受中国学者采访,为... 闻鱼7月30日,电影《奥德赛》中国首映礼在北京举行,导演克里斯托弗·诺兰携部分主创也来到了中国。导演...
男子手机号被当成迪卡侬官方售后... 7月24日,浙江宁波的王先生发帖称,自己的手机号被设置成迪卡侬售后服务热线,两年间陆续有上百个陌生电...