一般实践中,我们说到分布式部署都是指:
同机房同步主从同步来提高MySQL读写瓶颈上限。
异步异地主从同步,用来做数据热备份。
我想讨论的是异地互相同步
,实现真正的分布式部署。然后我有以下几个问题
PHP程序读写都是对本地数据库吗?还是读本地,写主数据库?
MySQL同步如何设置?1主N从?还是都作为主节点,有写入时同步到所有其他节点?
在数据一致性和写入延迟之间如何取舍?
一般实践中,我们说到分布式部署都是指:
同机房同步主从同步来提高MySQL读写瓶颈上限。
异步异地主从同步,用来做数据热备份。
我想讨论的是异地互相同步
,实现真正的分布式部署。然后我有以下几个问题
PHP程序读写都是对本地数据库吗?还是读本地,写主数据库?
MySQL同步如何设置?1主N从?还是都作为主节点,有写入时同步到所有其他节点?
在数据一致性和写入延迟之间如何取舍?
主库主要是写(可读可写),从库负责读;一主多从,有写入时,信息同步到从库。
master只需要完成自己的数据库操作即可,至于slaves是否收到二进制日志,是否完成操作,这个不用管,是MYSQL的默认设置。
master的写操作,slaves被动的进行一样的操作,可保持数据一致性。
如果slave可以主动的进行写操作,slave又无法通知master,这样就导致了master和slave数据不一致了。因此slave不应该进行写操作,至少是slave上涉及到复制的数据库不可以写。
主从复制中,一主N从,N个slave尽管默认情况下不进行写操作,但可以起数据备份的作用。一旦master挂了,可以将slave提升为master。
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
现有的解决方案:
阿里的otter
Percona的XtraDB Cluster,基于Galera Cluster
MySQL 5.7的Group Replication