三、验证测试
1、读写分离测试
读写分离是通过在配置文件中配置的不同端口实现
由于MySQLrouter节点未安装mysql客户端程序,所以在mysqldb1节点测试
登录写节点:端口7001
mysql -h 192.168.1.47 -u yangchao -p -P 7001
登录读节点:端口7002
mysql -h 192.168.1.47 -u yangchao -p -P 7002
由上测试可知:两次从7002读取端口登录的主机节点都是在配置文件中配置的只读节点。
2、读取复制均衡测试
登录读节点:端口7002
mysql -h 192.168.1.47 -u yangchao -p -P 7002
由上测试的4次通过登录读取端口7002可知,分别在mysqldb2,mysqldb3两个读取节点间轮询访问,实现了读取操作的复制均衡功能。
3、高可用测试
1)、读取节点的高可用性:
先关闭读取节点mysqldb2
mysql -h 192.168.1.47 -u yangchao -p -P 7002
由上测试可知:两次的7002端口登录都是在存活节点mysqldb3上。
2)、读写节点的高可用性:
修改配置文件,为读写节点配置如下:
[routing:read_write]
bind_address = 192.168.1.47
bind_port = 7001
mode = read-write
destinations = 192.168.1.41:3306,192.168.1.42:3306
停止读写节点 mysqldb1
登录 7001 端口:
登录的是 mysqldb2 节点实例
插入记录测试:
能成功插入数据。
在读取节点查看记录是否同步:
mysql -h localhost -u yangchao -p -P 3306 -S /tmp/mysql3306.sock
由上测试可知:读写的主节点可以实现故障切换,但并不能实现其复制角色色转变。
注:
1、在重新启动mysqldb1 节点实例服务后,再登录读写节点时也并不能登录到mysqldb1实例了,需要重新启动mysqlrouter服务后,方能实现登录读写节点是mysqldb1节点主机。
2、由于其复制均衡采用的是轮询的方式,经测试爱多个从节点中某个实例故障后,mysqlrouter仍然会轮询访问该故障节点,所以其仅实现的简单轮询负载而已,不能对节点状态实时监控。
3、本测试案例未考虑mysqlrouter的高可用性,其高可用性的实现可以使用keepalived。