1. 概述

在数据库架构设计上,多为一主多从,比较少出现多主的情况。但是一主不可避免的在数据入库较早出现瓶颈问题;以及主机宕机问题。因此有多主出现的意义。
因此多主在并发写入的时候,会出现一致性的问题。

2. 多主(假设两主)

举例:
假设表主键设置为自增(auto increase),则在同时写入一条数据的时候,可能出现使用了同个主键ID,然后在同步插入结果的时候,导致主键冲突。

解决办法:
设置不同主键初始值;设置相同的增长值

分析:
如此解决,可以解决主键ID冲突问题,但是严重依赖配置,那么应该怎么解决呢?
答案是代码使用统一ID生成器

3. 意外假设

当双主系统,发生一个宕机,而双主是双向同步的,当有了相同的增长值,就避免了需要等待同步完数据再提供写入服务的情况。