基于MGR高可用异地多活方案
一.概述主要目的实现MySQL高可用解决方案,实现异地多活。二.实现构思 基于MGR实现高可用异地多活首先要基于位置信息进行分片,例如华北 华中,华南,程序层要进行ip过滤和判断,针对不同的ip 写入到不同的分片集合中,每张表需要有一个地理位置字段。例如获得ip为华北,Create table xx(id int,Name varchar(111),Position int)华北 表示为0华中表示为1华南表示为2根据Position 字段进行分片。其次可以根据时间维度或者用户id,或者其他分片规则进行二次分片。要具备二次分片的能力 每个分片节点需要提供2个slave。用于分担读请求的压力。 三.故障处理 假设 NODE1节点故障首先NODE1节点下面的slave 停止工作,此前通过DNS记录把NODE1的ip在指向相近的节点为NODE2NODE2节点提供本身的华中的读写请求,并再次同时也接管了NODE1的读写请求。 实现方式 基于consul的提供服务发现和健康检查,并提供DNS切换的功能。 NODE1 故障后的恢复首先提供最近的节点NODE2节点进行基于binlog的恢复。等数据追平...
