【发布时间】:2020-11-26 18:43:46
【问题描述】:
如何为单个 rest 应用处理两个数据库。我看到这是一个云应用程序概念,但如果在 DB1 而不是 DB2 中删除了某些内容,如何处理并确保两者始终相同。
【问题讨论】:
标签: database architecture
如何为单个 rest 应用处理两个数据库。我看到这是一个云应用程序概念,但如果在 DB1 而不是 DB2 中删除了某些内容,如何处理并确保两者始终相同。
【问题讨论】:
标签: database architecture
有很多方法可以做到这一点。
首先您需要考虑数据库是否具有相同的架构和数据。在这种情况下,主从,主从复制将解决它。
如果架构和数据在某些表中相似而在其他表中不相似,在这种情况下,您可以使用 dblink 仅复制一个表Postgresql: master-slave replication of 1 table
大多数情况下,此类更改是在应用程序级别进行的,如果您真的想避免处理 2 阶段提交,您可以有一个队列和一个服务处理(重试和恢复)两个 dbs 的更新
最后在需要支持直接更新 db(不通过应用程序)的情况下,触发器和 dblink 是一个机会。
请探索这些工具以获得更多想法:https://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling
编辑:如果您有幸拥有相同的 db/data https://www.2ndquadrant.com/en/resources/postgres-bdr-2ndquadrant/,请从这里开始
【讨论】: