Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 移动应用程序的后台数据同步_Database_Api_Sync_Mobile Application_Data Synchronization - Fatal编程技术网

Database 移动应用程序的后台数据同步

Database 移动应用程序的后台数据同步,database,api,sync,mobile-application,data-synchronization,Database,Api,Sync,Mobile Application,Data Synchronization,我们正在一个数据库上构建一个API和移动应用程序,该数据库的主兴趣表中有几十万条记录 我们的移动开发人员正在大力推动在本地数据库中预加载带有完整表的应用程序,然后提供一项服务,使手机可以根据更新的列同步更改 虽然这可以通过让应用程序搜索本地商店来提高应用程序的性能,但我担心,随着我们获得更多的客户,这会在服务器上造成很大的负载 还有其他人处理过吗?这是个好主意,还是个坏主意?你能分享一些见解和链接吗?免责声明:自2008年以来,我一直在研究开源同步数据库,因此我对解决方案领域存在偏见 首先,不要

我们正在一个数据库上构建一个API和移动应用程序,该数据库的主兴趣表中有几十万条记录

我们的移动开发人员正在大力推动在本地数据库中预加载带有完整表的应用程序,然后提供一项服务,使手机可以根据
更新的
列同步更改

虽然这可以通过让应用程序搜索本地商店来提高应用程序的性能,但我担心,随着我们获得更多的客户,这会在服务器上造成很大的负载


还有其他人处理过吗?这是个好主意,还是个坏主意?你能分享一些见解和链接吗?

免责声明:自2008年以来,我一直在研究开源同步数据库,因此我对解决方案领域存在偏见

首先,不要一开始就认为你要在一张表的
列上跟踪
updated\u,由专业工程师组成的团队通常需要数年的时间来构建同步解决方案,而这些解决方案不会让人感觉像一堆黑客

我的团队一直在构建一个允许您存储本地iOS、Android、.NET或JavaScript代码中的本地JSON对象并与之交互的系统。这样,您就可以查询、读取和写入,而无需担心网络链接状态。对于开发人员来说,网络连接只需配置一次,而不是在每次需要数据时处理

我们还提供了一种新的解决方案,这使得使用不同类型的数据流构建应用程序变得很容易。应用程序的服务器端可以简单到一个简短的JavaScript同步功能(基于map reduce),它可以将数据路由到频道(并向用户或组授予频道访问权限)。您还可以让用户操作触发实际事件,如发送推送通知或更新现有后端API


如果您对其中任何一项感兴趣,我们有一个积极的解决方案。我们所做的一切都是开源的,因为我们使用开源协议,所以我们可以与许多其他项目同步。

虽然这是一个老问题,但我最近多次遇到这个问题,并希望通过为任何数据库编写此问题的设计模式来概括这个问题(在我的例子中,移动设备上的sqlite和中央服务器上的mySQL)和任何模式。以下是google文档上的设计模式:

此外,还有一个应用程序和单元测试来证明该模式按照指定的方式工作。请参阅GitHub链接:

或者,在github上搜索johngoodstadt,然后搜索移动同步。Android版本即将推出(2016年5月)

它不提供付费服务所能提供的全部同步服务,但如果您的要求是大多数移动解决方案的典型要求,它可以为您节省大量的实验时间。请反馈任何问题、错误、bug,以便我可以完善此设计模式/代码

谢谢

John Goodstadt

查看SymmetricDSThanks@NeilMcGuigan,我更感兴趣的是,与寻找实现同步的工具相比,这个想法的优点。比如,将数据同步到一个可能永远不会对服务器造成沉重代价的客户端是否有意义。我不确定为什么这必然意味着服务器上的负载更重。数据库是否插入是“实时”完成的,或更高版本的同步不应改变负载。本地存储数据的一个主要优点是,该应用程序可以脱机使用:它不是我们尝试同步的手机上的插入。它是在服务器上进行的更改。显然,手机的好处是脱机使用……但我担心的是有大量客户端试图同步ync有大量的数据,对他们来说可能根本不重要。你链接到的这篇文章并不坏@NeilMcGuigan,但它没有涵盖我在这里要解决的问题。比如,只考虑出站反向代理缓存。服务器只缓存用户查询的内容。它不会尝试缓存整个数据库。类似地r关于手机离线使用的概念,我想知道是否需要一个更聪明的同步方案。此外,我想听听已经解决了这个问题的人的意见。克里斯,谢谢你。我正在度假,但会阅读你的链接。如果手机没有在本地更改任何数据,我们可以在安全同步?