Mysql读写分离——主从数据库+Atlas (2)

到这里主从数据的配置就已经完成,在向主库写入数据的同时,将在从库进行自动的备份。但在实际测试中遇到了配置完成之后无法向主数据库写入的问题,初步
判断是由于主库加锁而未解锁的问题,所以这里采用比较暴力的方法,重启主数据库容器。

# master节点 docker restart mysql3306 配置Atlas

Atlas是有360团队优化mysqlproxy而衍生出的版本,性能更好更稳定。

Atlas有两个版本,这里我选择普通版本,即不分表。

在阿里云主机(centos7)上进行一下安装步骤:

下载安装

[root@localhost ~]# cd /home/ [root@localhost home]# wget https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm

安装

[root@localhost home]# rpm -ivh Atlas-2.2.1.el6.x86_64.rpm

安装目录位于/usr/local/mysql-proxy/

使用安装目录下的bin/encrypt程序加密数据库密码

[root@localhost bin]# ./encrypt hello

配置Atlas

[root@localhost conf]# cd /usr/local/mysql-proxy/conf/ [root@localhost conf]# vim test.cnf

修改以下配置:

#管理接口的用户名 admin-username = user #管理接口的密码 admin-password = pwd ... #Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔 proxy-backend-addresses = 10.0.0.1:3306 #Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔 proxy-read-only-backend-addresses = 10.0.0.2:3306@1 ... #用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码! pwds = buck:RePBqJ+5gI4= ... #Atlas监听的工作接口IP和端口 proxy-address = 0.0.0.0:1234 #Atlas监听的管理接口IP和端口 admin-address = 0.0.0.0:2345

读者需要根据自己的实际情况修改以上配置

启动Atlas

[root@localhost bin]# /etc/init.d/mysqld status OK: MySQL-Proxy of test is started

使用mysql命令连接数据库

其中2345端口是管理端口,用户可以在该管理数据库中修改数据库代理服务器的相关配置

[root@localhost bin]# mysql -h127.0.0.1 -P2345 -uuser -ppwd

其中1234端口是数据库代理服务器的端口,用户可以直接访问该端口进行数据库的访问和更新

[root@localhost bin]# mysql -h127.0.0.1 -P1234 -ubuck -phello

使用软件连接Atlas数据库代理服务器

这里发现,之前使用的mysql workbench无法正常使用,更换Navicat可以正常使用。

使用jdbc连接数据库

使用方法与普通数据库一样。

后记

到这里,配置就已经全部完成。有心的读者或者已经发现,还有一台服务器未使用,这台服务器将在以后接入到现有的mysql数据库集群当中,充当新的slave节点。该实验将在以后补上。

理论上说,我所做的这些或许会对负载过大的问题有所解决。但最近并未出现太高的访问现象,所以短期也没有看到效果。具体效果,将在实际场景中验证后补充上,敬请期待。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjwsz.html