采用 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 配置如下
<master-slave: master-data-source-name="master_ip" slave-data-source-names="virtual_ip" />

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容