我C MySQL双主架构 原来能如此玩
发布时间:2022-07-27 11:07:28 所属栏目:安全 来源:互联网
导读:经常有朋友问,MySQL双主的一致性问题,今天简单聊一聊。 MySQL为什么要使用双主架构? MySQL最常见的集群架构,是一主多从,主从同步,读写分离的架构。通过这种方式,能够扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。 为了保证MySQL写库
经常有朋友问,MySQL双主的一致性问题,今天简单聊一聊。 MySQL为什么要使用双主架构? MySQL最常见的集群架构,是一主多从,主从同步,读写分离的架构。通过这种方式,能够扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。 为了保证MySQL写库的高可用,可以在一个MySQL数据库集群中可以设置两个主库,并设置双向同步,以冗余写库的方式,来保证写库的高可用。 两个MySQL主库设置双向同步可以用来保证主库的高可用; 数据库中现存的记录主键是1,2,3; 主库1插入了一条记录,主键为4,并向主库2同步数据; 数据同步成功之前,主库2也插入了一条记录,由于数据还没有同步成功,插入记录生成的主键也为4,并向主库1也同步数据; 主库1和主库2都插入了主键为4的记录,双主同步失败,数据不一致; 能否在MySQL层面,保证两个主库生成的主键一定不冲突呢? 如上图所示,两个主库最终都将包含1/2/3/4/5/6/7/8所有数据,即使有一个主库挂了,另一个主库也能够保证写库的高可用。 上述方案,依赖与数据库的配置,能不能由应用程序,来保证数据的一致性呢? 答案是肯定的,应用程序使用统一的ID生成器,可以保证ID的生成不冲突。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |