加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

我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编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读