主从复制 - 跨机房分布式部署的PHP&MySQL架构,数据库如何同步?

 mobiledu2502853587 发布于 2022-11-15 11:33

一般实践中,我们说到分布式部署都是指:

  1. 同机房同步主从同步来提高MySQL读写瓶颈上限。

  2. 异步异地主从同步,用来做数据热备份。

我想讨论的是异地互相同步,实现真正的分布式部署。然后我有以下几个问题

  1. PHP程序读写都是对本地数据库吗?还是读本地,写主数据库?

  2. MySQL同步如何设置?1主N从?还是都作为主节点,有写入时同步到所有其他节点?

  3. 在数据一致性和写入延迟之间如何取舍?

4 个回答
  • 谢邀,但是能力有限,帮您再召唤些大神来吧。。

    2022-11-15 12:09 回答
  • 主库主要是写(可读可写),从库负责读;一主多从,有写入时,信息同步到从库。
    master只需要完成自己的数据库操作即可,至于slaves是否收到二进制日志,是否完成操作,这个不用管,是MYSQL的默认设置。
    master的写操作,slaves被动的进行一样的操作,可保持数据一致性。
    如果slave可以主动的进行写操作,slave又无法通知master,这样就导致了master和slave数据不一致了。因此slave不应该进行写操作,至少是slave上涉及到复制的数据库不可以写。
    主从复制中,一主N从,N个slave尽管默认情况下不进行写操作,但可以起数据备份的作用。一旦master挂了,可以将slave提升为master。

    2022-11-15 12:09 回答
  • 可参考我之前的一篇文章 https://segmentfault.com/a/11...

    2022-11-15 12:09 回答
  • 现有的解决方案:

    • 阿里的otter

    • Percona的XtraDB Cluster,基于Galera Cluster

    • MySQL 5.7的Group Replication

    2022-11-15 12:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有