移动应用的后台数据同步

qui*_*tin 8 database api sync mobile-application data-synchronization

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

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

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

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

J C*_*s A 8

免责声明:自2008年以来,我一直致力于开源同步数据库,因此我对解决方案领域抱有偏见.

首先,不要开始认为你要跟踪updated_at桌子上的列,那条道路就是疯狂.专门的专业工程师团队经常花费数年时间来构建同步解决方案,这些解决方案并不像一堆黑客.

我的团队一直在构建一个轻量级的嵌入式数据库,允许您存储本地iOS,Android,.NET或JavaScript代码中的本地JSON对象并与之交互.该数据库API是所有地方,所以你可以查询,读,写,不用担心你的网络连接状态.对于开发人员来说,网络连接会成为您配置一次的内容,而不是每次需要数据时处理的内容.

我们还构建了一个服务器,可以轻松构建具有不同类型数据流的应用程序.您的应用程序的服务器端最终可以像简短的JavaScript同步功能(基于map reduce)一样简单,它可以将数据路由到通道(并授予用户或组的通道访问权限).您还可以通过渠道驱动后端流程,以便用户操作触发真实世界事件,例如发送推送通知或更新现有后端API.

如果您对此感兴趣,我们的邮件列表中有一个活跃的用户和贡献者社区.我们所做的一切都是开源的,因为我们使用开源协议,所以我们可以与其他项目进行广泛的 生态系统同步.


小智 5

尽管这是一个古老的问题,但我最近面对了几次,并希望通过针对所有数据库(在我的情况下为移动设备上的sqlite和中央服务器上的mySQL)和任何模式编写此问题的设计模式来概括该问题。这是Google文档上的设计模式:

Google文档上的mobileSync

另外,还有一个应用程序和单元测试,以证明该模式可以按指定方式工作。见GitHub链接:

iOS版MobileSync应用程序

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

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

谢谢
约翰·古斯塔特