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

本文针对MySQL主库单点问题,提出结合TDDL的容灾切换方案。共识是使用TDDL业务将MySQL配置放于diamond,TDDL group用于读写分离。介绍了部署步骤、切换条件,给出安装mysql - agent示例,阐述了主库异常时备库接替及业务方数据源重新初始化完成自动切换的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景: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主库容灾的自动切换

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值