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

2024-04-18

我们正在数据库之上构建 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(使用前将#替换为@)

移动应用程序的后台数据同步 的相关文章

随机推荐

  • 使用 CRON 作业执行 PHP 脚本 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想每天午夜运行一个 PHP 脚本
  • JPEG 标头丢失/损坏

    我有一个 130kb jpeg 图像 无法在任何程序中打开 我需要修复它 从我使用的各种图像恢复软件中 我得到的只是 图像头损坏 丢失 当我查找文件的属性时 我什至没有得到任何信息 没有尺寸等 只有文件大小 一旦图像的标头丢失 是否可以恢复
  • 如何在 Ruby 中进行模糊子字符串匹配?

    我发现了很多关于模糊匹配的链接 将一个字符串与另一个字符串进行比较 看看哪个字符串的相似度得分最高 我有一个很长的字符串 一个文档 和一个子字符串 子字符串来自原始文档 但已被转换多次 因此可能会引入奇怪的工件 例如这里有一个空格 那里有一
  • Neo4j 的数据库级验证

    我使用 Neo4j 作为我的图形数据库 假设我想限制用户名字段的长度小于10 有没有办法在数据库级别施加这样的约束 现在 您必须在应用程序级别上执行此操作 或者通过注册一个事务提交挂钩来检查该属性字段是否符合特定标准 See http do
  • 免费的 XSD 到 DTD 转换实用程序?

    我有一个 XSD XML 架构 需要将其转换为 DTD 有免费的实用程序或简单的方法来完成此任务吗 例如 XSLT Python 脚本也很受欢迎 Note 这是问题的相反方向免费 DTD 到 XSD 转换实用程序 https stackov
  • Akka Actor 询问和类型安全

    我如何使用 Akka Actor Ask 并维护类型安全 或者避免使用 询问 而使用 告诉 打电话时 or ask在 Akka Actor 上 Future Any 返回 我必须通过进行显式转换future mapTo MyType 我不喜
  • Android - 拥有多个共享首选项是不好的做法吗?

    我有一个应用程序使用SharedPreferences 一个仅存储应用程序版本以检查更改日志的更新 另一个包含一些布局信息clear 当用户选择时被调用 我终于设法得到了PreferenceFragment工作并注意到一种趋势 所以我想在我
  • Spring Boot:是否可以使用 fat jar 在任意目录中使用外部 application.properties 文件?

    是否可以有多个 application properties 文件 EDIT 请注意 这个问题演变成了标题上的问题 我尝试有2个文件 第一个位于应用程序 Jar 中的根文件夹中 第二个位于类路径中指定的目录中 2 个文件都命名为 appli
  • 创建 SSIS 包 - 将数据从 Oracle 复制到 SQL Server

    我想编写一个 SSIS 包 用于将数据从 Oracle 复制到 MS Sql 服务器 而且条件是 通过在 SQL 中选择一个表 就可以知道哪些数据必须从 oracle 移动到 SQL 基本上 如果 SQL Server 中的该表中没有该值
  • OpenCV 无法从网络摄像头捕获帧

    我在 VS2010 中使用 OpenCV 2 4 6 我认为我的网络摄像头无法捕获该帧 当我执行代码时 它构建成功 但我没有得到输出 我想 当我检查时if bSuccess 它已执行并且无法从网络摄像头捕获帧 我该如何解决这个问题 我的代码
  • 按数据框的子段对数据框进行排序

    我和我的团队正在处理数千个具有相似段的 URL 有些 URL 在我们感兴趣的位置有一个段 seg 复数 segs 其他类似的 URL 在我们感兴趣的位置上有不同的段 我们需要对由 URL 和关联的唯一段组成的数据框进行排序 在感兴趣的位置
  • 只为 IE 设置 CSS?

    我有一个简单的div具有 2px 厚的边框和绝对定位 直到其父元素悬停在其上方时才会隐藏 由于IE盒子模型 所说的位置div在 IE 中有些关闭 但在其他浏览器中则不然 我不想为 IE 添加完全独立的样式表 我只想在浏览者使用 IE 时修改
  • 如果您不打算从自适应渲染中受益,那么使用 HtmlTextWriter 有什么好处吗?

    除了从替代设备的自适应渲染中受益之外 编写所有这些代码是否有意义 writer WriteBeginTag table writer WriteBeginTag tr writer WriteBeginTag td writer Write
  • 将位串 numpy 数组转换为以 2 为基数的整数的最快方法

    我有一个由位串组成的 numpy 数组 我打算将位串转换为以 2 为基数的整数 以便执行一些异或按位运算 我可以在 python 中将字符串转换为以 2 为基数的整数 int 000011000 2 我想知道在 numpy 中是否有更快更好
  • 将两个 Map 合并为一个 MultiMap

    在 Java 中将两个 Map 组合成一个 Guava MultiMap 的最佳方法是什么 例如 Map1 包含 1 a 和 2 b Map2 包含 2 c 和 3 d 然后生成的组合多重贴图将包含 1 a 2 b c 和 3 d 这是我当
  • 如何在 Angular 中处理空值

    我正在向 Angular 发送数据 但记录的其中一个值 关闭日期 为空 我如何在 Angular 中处理这个问题 以便如果 value 为 null 它会更改为 getDetails this myService getFlowerDeta
  • Android NumberPicker with Formatter 在首次渲染时不会格式化

    我有一个 NumberPicker 它有一个格式化程序 可以在 NumberPicker 旋转或手动输入值时格式化显示的数字 这工作正常 但是当 NumberPicker 首次显示并且我用以下命令初始化它时setValue 0 0 不会被格
  • GCP Dataproc 作业未找到存储在存储桶中的 SSL pem 证书

    我有一个 GCP Dataproc 集群 我正在尝试部署一个 pyspark 作业 该作业使用 SSL 生成一个主题 pem 文件存储在存储桶 gs dataproc kafka code code 中 我正在使用下面所示的代码访问 pem
  • 使用日期的 MongoDB 聚合 $unwind $match - 我错过了什么?

    我是 MongoDB 的新手 我正在尝试使用聚合 我部分地做了我正在寻找的事情 但我对约会有一种奇怪的行为 MongoDB 信息 版本 2 2 0 操作系统 Windows 7 客观的 获取 2012 11 22 之后创建的所有评论 让我们
  • 移动应用程序的后台数据同步

    我们正在数据库之上构建 API 和移动应用程序 该数据库的主表中有数十万条记录 我们的移动开发人员正在努力推动应用程序在本地数据库中预加载完整的表 然后提供一项服务 让手机可以将更改与数据库同步updated at column 虽然这肯定