我正在用Node.js和MySQL创建这个web应用程序,我在数据同步方面苦苦挣扎。
下面是一个场景:
假设我们有1000个客户,他们的office/站点中都有一个本地的we服务器数据库。用户可以登录、编辑数据、数据传感器等。为了示例,所有这些活动都有助于每个客户/站点每天大约500 to的表数据。因此,1000个客户中的每个人都有一个本地数据库,该数据库将在一天内不断地使用新数据进行更新。
同时,对于所有1000个客户,有一个云服务,允许他们登录并查看他们所有的数据,就像他们在本地现场一样。他们还可以从云中进行更改,编辑/创建/删除数据。
现在我遇到的问题是:
提前感谢!
发布于 2013-11-03 03:54:30
想象一下这样一个平行的现实:ATM机与银行没有链接,它们使用数据库的副本,直到一天结束时才同步。
你可以开车到这个城市的每个自动取款机,并多次提取你所有的钱。只有当你已经是百万富翁并离开这个国家时,他们才会注意到欺诈行为。
这只是一个例子,但你知道,即使你知道这个同步机制,你仍然会有意想不到的问题,不仅值被改变,而且不同的记录被用相同的主键创建等等。这可能是一个主要的问题。
我认为根本没有解决这一问题的通用技术。您必须仔细研究应用程序在数据库中可能采取的每一个操作的同步方面。我不知道,可能会在进程中生成一个用于同步的可运行SQL脚本。
发布于 2013-11-03 04:18:50
从个人经验来看: MySQL复制不能很好地扩展。如果同步失败,则需要某种机制来通知和恢复。如果你有上千个这样的工作要做,你将做很多的操作工作。
另一种观点是:考虑跟踪变更。当任何一端进行更改时,将该更改提交到更改控制系统。在预定义的时候,让两端锁定更改,让两端运行一个进程从更改日志中筛选副本,然后让两端用非重复的方式更新他们的数据库。最后,解锁更改。同时,编写两端以查阅更改系统,列出挂起的更改。
这不是一个容易的情况:你有大规模的,分布的处理。尽量减少移动部件,以减少维护点。
发布于 2020-12-18 01:38:06
Mysql复制不能用于此目的。
但是,如果您可以使用基于所有文档的存储,Couch解决方案将能够解决这个问题。我们使用沙发数据库已经有一段时间了,它已经很好地解决了这个问题,我们将本地的沙发数据库同步到服务器沙发集群。我知道这是个老帖子--但我希望有人会发现这有用。祝好运!
https://stackoverflow.com/questions/19749578
复制相似问题