基于MyCat实现高可用的MySQL读写分离与负载均衡

数据库 收藏 0 142
FREE VIP 2020-01-03 15:16:34

基于mycat的分库分表 可参考:

https://freees.cn/article_detail?article_id=22&nav_id=6

Mysql读写分离需要依靠插件实现,常用的有mysql-proxymysql官方),mycat(阿里), atlas360),maxscale等等。mysql-proxy至今未发布正式版本,此次实现选择了mycat

注:实现读写分离前,需先完成主从同步

 可参考:https://freees.cn/article_detail?article_id=19&nav_id=6

六台数据库服务器

192.168.132.128 : mastermycatmycat可单用一台服务器)

192.168.132.129 : slave-1

192.168.132.130 : slave-2

冗灾:

192.168.132.131 : master-backup

192.168.132.132 : slave-backup-1

192.168.132.133 : slave-backup-2

undefined


1. 安装Java环境

Mycat基于Java,运行需要Java环境

[root@localhost home]# yum install java-1.8.0-openjdk.x86_64

2. 下载mycat,解压

[root@localhost home]# wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz

(官方下载地址:http://dl.mycat.io

[root@localhost home]# tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz

3. mycat文件夹移动到/use/local/

[root@localhost home]# mv mycat /usr/local/

4. 创建运行mycat的账号,并赋权mycat文件的夹权限

[root@localhost home]# adduser user_mycat

[root@localhost home]# chown user_mycat:user_mycat -R /usr/local/mycat

5. 配置环境变量

[root@localhost /]# vi /etc/profile

undefined

刷新环境变量

[root@localhost /]# source /etc/profile

6. 切换用户并启动mycat

[root@localhost /]# su user_mycat

[user_mycat@localhost /]$  /usr/local/mycat/bin/mycat start

undefined

7. 配置文件

schema.xml:读写分离配置文件

server.xmlmycat连接配置信息

undefined

Schema.xml个别标签属性说明,其他属性需要可自行查询

下图的schema.xml单纯实现读写分离与冗灾方案,删除了不需要的配置,操作前请先备份schema.xml

标签 定义逻辑数据库 名称(所谓逻辑数据库就是依赖于分库的真实数据库) name 必须与server中权限定义的 相同

<dataHost>标签 定义后端的数据库主机

 maxCon属性 指定每个读写实例连接池的最大连接。

 minCon 属性 指定每个读写实例连接池的最小连接,初始化连接池的大小。

 balance 属性 负载均衡类型

1balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。

2balance="1",全部的 readHost stand by writeHost 参与 select 语句的负载均 衡, 简单的说,当双主双从模式(M1->S1M2->S2,并且 M1 M2 互为主备),正 常情况下,M2,S1,S2 都参与 select 语句的负载均衡。

3balance="2",所有读操作都随机的在 writeHostreadhost 上分发。

4balance="3",所有读请求随机的分发到 wiriterHost 对应的 readhost 执行, writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。

writeType 属性

1writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存 的第二个riteHost,重新启动后已切换后的为准,切换记录在配置文            件:dnindex.properties.

2writeType="1",所有写操作都随机的发送到配置的 writeHost1.5 以后废弃不推荐。

switchType 属性1 默认值,自动切换

 writeHost标签 写操作的数据库

readHost标签 读操作的数据库 可写多个

undefined


Server.xml说明

打开8066端口号

undefined

配置mycat读写操作用户

schemas中的值与schema.xml中的schema中的name名称对应(数据库的实例名称)

undefined

8. 重启mycat

[root@localhost bin]# ./mycat restart

需要root管理员权限

 

9. navicat远程连接mycat

注意打开防火墙8066端口,否则报2003错误

undefined

10.测试

测试读写

手动关闭master mysql服务,测试读写

手动关闭mastermaster-backupmysql服务,测试读写

评论
  • 消灭零回复