MaxScale:实现MySQL读写分离与负载均衡的中间件利器(2)
登录 MaxScale 管理器,查看一下数据库连接状态,默认的用户名和密码是 admin/mariadb. MaxScale> list servers 可以看到,MaxScale 已经连接到了 master 和 slave. (5)测试 先在 master 上创建一个测试用户 使用 Mysql 客户端到连接 MaxScale 执行查看数据库服务器名的操作来知道当前实际所在的数据库: 开启事务后,就自动路由到了 master,普通的查询操作,是在 slave上 MaxScale 的配置完成了. 4、MaxScale 在?slave 有故障后的处理前面已经介绍了 MaxScale可以实现MySQL的读写分离和读负载均衡,那么当 slave 出现故障后,MaxScale 会如何处理呢? 例如有 3 台数据库服务器,一主二从的结构,数据库名称分别为 master,slave1,slave2. 现在我们实验以下两种情况: (1)当一台从服务器( slave1 或者 slave2 )出现故障后,查看 MaxScale 如何应对,及故障服务器重新上线后的情况 (2)当两台从服务器( slave1 和 slave2 )都出现故障后,及故障服务器重新上线后的情况 准备为了更深入的查看 MaxScale 的状态,需要把 MaxScale 的日志打开: 修改配置文件 ?找到 [maxscale] 部分,这里用来进行全局设置,在其中添加日志. 配置?通过开启 log_info 级别,可以看到 MaxScale 的路由日志. 修改配置后,重启 MaxScale . 实验过程?初始状态是一切正常. 停掉 slave2 的复制,登录 slave2 的 mysql 执行. 查看 MaxScale 服务器状态 slave2 已经失效了. 查看日志信息 尾部显示: 提示 slave2 已经丢失. 查看客户端查询结果: 查询操作全都转到了 slave1. 可以看到,在有 slave 故障后,MaxScale 会自动进行排除,不再向其转发请求. 下面看下 slave2 再次上线后的情况. 登录 slave2 的 MySQL 执行 查看 MaxScale 服务器状态 slave2 已经失效了. 查看日志信息 尾部显示: 提示 slave2 已经丢失. 查看客户端查询结果: 查询操作全都转到了 slave1. 可以看到,不再向其转发请求. 下面看下 slave2 再次上线后的情况. 登录 slave2 的 MySQL 执行 查看 MaxScale 服务器状态 恢复了正常状态,重新识别到了 slave2. 查看日志信息,显示: 查看客户端查询结果:
slave2 又可以正常接受查询请求. (编辑:ASP站长网) |