采用 keepalived+sharding-jdbc实现 mysql 主备

最近搞个mysql 主被 具体需求如下

  1. master 正常时 所有请求router到master;
  2. master不正常时,DQL路由到slaves(slaves 会进行负载均衡,算法自定),DML DDL等抛异常;

本想写个开源的 参考了下 sharding-jdbc的代码 挤牙膏挤出来了点

https://github.com/yiwugou/yiwugou-jdbc

但是还没有进行详细的测试 问题应该一大堆 但是最近忙于别的项目 而且马上要演示了 暂时也抽不开身专心搞这功能 突然间想到这个方案 不知道可行不可行 大家一起琢磨下

配置方法

master  :   master_ip
slave      :   slave_ip

keepalived: virtual_ip  (主 master_ip,  备 slave_ip)

sharding-jdbc 配置如下


这样正常情况下  DQL 到 virtual_ip --> 也就是 master_ip, DML 到 master_ip
master_ip 不可访问时, DQL到 virtual_ip --> slave_ip, DML 还是到 master_ip

不知道这想法可行不可行 (挖好坑 以后再填)

你可能感兴趣的:(采用 keepalived+sharding-jdbc实现 mysql 主备)