Mysql一主多从、多主多从下,PHP项目怎么自动剔除故障的Mysql节点?

假设Mysql现在是2主2从,没有使用数据库中间件,业务代码里直接使用,例如laravel:

'mysql' => [
    'read' => [
        'host' => [
            'slave1',
            'slave2',
        ],
    ],
    'write' => [
        'host' => [
            'master1',
            'master2',
        ],
    ],
],

现在假设从slave1意外挂了,但是slave2还能提供读服务,网站一半的请求都报数据库错误,我想要自动把slave1剔除,全部使用slave2,等到修复slave1后再加进来,如何实现比较好

讨论数量: 2
JaguarJack

没遇到过。可不可以捕获异常,然后切库的配置之后 reconnect

1周前 评论
  1. laravel 从 consul(或其他类似应用) 中获取 env 配置配置, 这里需要配合数据库连接检测
  2. 上面网友说捕获异常,通知处理
  3. 定时任务检验数据库连接是否可用,不可以就修改配置文件,如果是常驻进程需要重启
1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!