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

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(使用前将#替换为@)

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

  • 获取 2 个字母的州/省缩写

    因此 我使用 GeoNames API 获取国家 地区和州 省信息 并使用这些信息填充表单中的选择下拉列表 此表单将其信息提交给 SOAP Web 服务 并且 SOAP 服务器仅理解 2 个字母形式的国家 地区和州 省数据 IE CA 代表
  • 有没有办法通过API调用访问私有数据集

    我正在使用 CKAN 2 8 运行 Mirth 3 6 1 作为新手 我遇到了一个问题 有没有办法通过 API 请求访问 CKAN 中私有数据集中的资源 我好像做不到 我有一个拥有公共数据集的组织 我可以通过 API 路由器通过 Mirth
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • 防止重入并确保某些操作获取锁的正确方法是什么?

    我正在设计一个基类 当继承该基类时 它将针对多线程环境中的上下文提供业务功能 每个实例可能都有长时间运行的初始化操作 所以我想让这些对象可重用 为此 我需要能够 为这些对象之一分配上下文以允许其完成工作 防止对象在已有上下文的情况下被分配新
  • 无锁算法真的比全锁算法性能更好吗?

    陈雷蒙德 http blogs msdn com b oldnewthing 一直在做一个huge http blogs msdn com b oldnewthing archive 2011 04 15 10154245 aspx ser
  • java ResultSet,使用MAX sql函数

    你好 这就是我想要的 我连接到数据库并检索 UniqueId 列的最大元素 并将其分配给名为 maxID 的整数变量 这是我的方法 int maxID 0 Statement s2 con createStatement s2 execut
  • 用于捕获审计跟踪的数据库设计的想法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何维护数据库中的数据日志 我必须维护对每一行所做的每次更改的日志 这意味着我不能允许DELETE and UPDATE待执行 我怎样才能保留这
  • 在 C 的公共 API 函数中使用枚举参数是个好主意吗?

    我正在设计一个 C API 其中必须提供一种设置一些双值选项的方法 为了识别选项 我使用以下枚举 typedef enum OptionA OptionB Option 使用是一个好主意吗Option作为公共 API 函数中的参数类型 in
  • WordPress:wpdb->插入与wpdb->准备(wpdb->查询(“INSERT

    我想知道 WordPress 的插入功能是否也向数据添加斜杠 如果没有 准备查询方法似乎可以更好地防止 SQL 注入 我尝试在 codex api 中查找问题 然而 它似乎没有记录 谢谢 这个问题有点老了 自从提出这个问题以来 法典可能已经
  • 有没有办法阻止 SQL Express 2008 空闲?

    我使用 SQL Express 2008 作为 Web 应用程序的后端 问题是 Web 应用程序是在工作时间使用的 因此有时在午餐或休息时间 如果 20 分钟内没有用户登录 SQL Express 将进入空闲状态模式并释放其缓存 我知道这一
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • Microsoft.Graph - 如何从具有不同用户名的共享邮箱发送?

    我目前正在将使用 SMTP 的服务代码移植到 Office 365 通过 SMTP 我可以使用 发件人 字段在来自共享收件箱的邮件上设置不同的用户名 同时保留共享电子邮箱地址 这似乎无法通过 Office 365 运行 其工艺流程为 客户填
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 如何开始复杂级别的跨平台移动应用开发? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 我们可以通过 Facebook 的 API 访问企业页面上的“热门时段”吗?

    我正在为酒吧和餐馆构建一个网络应用程序 我发现 Facebook 在商业页面上有一个很棒的功能 称为 热门时段 可以告诉您某个地方的繁忙程度和时间 Facebook 的文档似乎没有提及任何相关内容 有谁知道这些信息是否可以通过 API 访问
  • Sqlite 查询检查 - 小于和大于

    return mDb query DATABASE TABLE new String KEY ROWID KEY LEVEL KEY LEVEL gt 3 lt 5 null null null null 我究竟做错了什么 它返回的值全部高
  • 发布Oracle和SQL Server性能测试是否违反许可? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想对Oracle和SQL Server中的空间索引进行性能测试 我想将其纳入我的理学硕士工作中 发布此类结果是否违反 dbms 的许可 也许有人已经

随机推荐

  • 使用 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 虽然这肯定