我们正在数据库之上构建 API 和移动应用程序,该数据库的主表中有数十万条记录。
我们的移动开发人员正在努力推动应用程序在本地数据库中预加载完整的表,然后提供一项服务,让手机可以将更改与数据库同步updated_at
column.
虽然这肯定可以通过让应用程序搜索本地商店来提高应用程序的性能,但我担心随着我们获得更多客户,这会在服务器上产生大量负载。
还有其他人处理过这个吗?这是一个好主意还是坏主意?您能分享一些见解和链接吗?
免责声明:自 2008 年以来,我一直致力于开源同步数据库的研究,因此我对解决方案空间存在偏见。
首先,不要一开始就认为你要追踪updated_at
表格上的列,沿着这条路走下去就是疯狂。 http://culturedcode.com/things/blog/2010/12/state-of-sync-part-1.html由专业工程师组成的团队通常需要花费数年时间来构建同步解决方案,而这些解决方案不会让人感觉像是一堆黑客。
我的团队一直在建设轻量级嵌入式数据库 http://developer.couchbase.com/mobile/它允许您存储来自本机 iOS、Android、.NET 或 JavaScript 代码的本地 JSON 对象并与之交互。这数据库API都是本地的 http://developer.couchbase.com/mobile/develop/guides/couchbase-lite/native-api/index.html这样您就可以查询、读取和写入,而无需担心您的网络链接状态。对于开发人员来说,网络连接变成了您配置一次的东西,而不是每次需要数据时都要处理的东西。
我们还曾建立了一个服务器来配合它 https://github.com/couchbase/sync_gateway,这使得构建具有不同类型数据流的应用程序变得容易。您的应用程序的服务器端最终可以像一个简短的 JavaScript 同步功能(基于 MapReduce)一样简单,它可以将数据路由到通道(并向用户或组授予通道访问权限)。你也可以通过通道驱动后端进程 http://developer.couchbase.com/mobile/develop/guides/sync-gateway/changes-worker/index.html因此,用户操作会触发现实世界的事件,例如发送推送通知或更新现有的后端 API。
如果您对其中任何一个感兴趣,我们有一个活跃的活动我们的邮件列表上的用户和贡献者社区 https://groups.google.com/forum/#!forum/mobile-couchbase。我们所做的一切都是开源的,并且由于我们使用开源协议,所以有一个wide http://couchdb.apache.org/ 生态系统 http://pouchdb.com/我们可以同步的其他项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)