结合TDDL的mysql主库的容灾切换方案

背景:mysql主库单点问题

通过业务功能的写入主库通常只能有一个,故障时需要切换到备用主库

结合TDDL的mysql主库的容灾切换方案

共识:1.使用TDDL的业务通常将mysql配置信息放在diamond

           2.TDDL group作用是读写分离

部署步骤:1.mysql实例和mysql-agent比例1:1

                  2.增加和修改diamond配置(包括备库配置,修改group配置)

切换条件:

  • mysql

                  1.mysql异常

                  2.mysql主机死机

                  3.mysql主机宕机

                  4.mysql机器网络异常

  • agent

                  1.agent异常

                  2.agent与mysql通信异常

                  3.agent机器宕机

                  4.agent机器网络异常

示例如下:

1.安装mysql-agent步骤如下:

  • 下载mysql-agent可运行jar包

          <dependency>
                   <groupId>com.gome.architect</groupId>
                   <artifactId>mysql-agent</artifactId>
                   <version>0.0.1</version>
           </dependency>

  • 修改配置,将配置放在conf.properties(名称不限),将mysql-agent和conf.properties放在同一个目录中(配置文件可以放在子目录中)

          #mysql相关配置。用于检测mysql健康状态
          #mysql.db.type:druid atom plain
          mysql.db.type= plain
          mysql.jdbc.url = jdbc:mysql://10.58.50.110:3306/test
          mysql.jdbc.username = root
          mysql.jdbc.password =
          mysql.jdbc.encKey = 

          #测试zk地址。把mysql健康状态汇集到zk.多个用逗号分割
          zkServers = 10.126.53.168:2181,10.126.53.169:2181,10.126.53.170:2181
          #agent mysql健康检查参数设置 ,以下都是可选参数
          #mysql健康检查时间间隔30s
          #mysql.heartbeat.interval = 30
          #初次检查宕机之后详细检查次数
          #mysql.confirm.check.time = 5
          # 初次检查宕机之后详细检查时间间隔1s
          #mysql.confirm.check.interval = 1

  • 启动mysql-agent

          nohup java -jar mysql-agent-0.0.1.jar config.properties &

2.假设已经增加了备库配置

3.修改group配置,添加主库的备库

 

以group_sample_0的配置为例

 

 

切换过程:

        数据库qatest_normal_0_bac由于没有配置读写比例r/w所以不参与业务逻辑,配置成b作为主库的备库标识

当主库qatest_normal_0出现异常情况,qatest_normal_0_bac与qaest_normal_0交换配置qatest_normal_0_bac成为新的主库

业务方的diamond客户端感知配置变化,从而重新初始化数据源,完成mysql主库容灾的自动切换

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值