- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
关闭。这个问题是opinion-based .它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.
4年前关闭。
Improve this question
我的应用程序是离线优先的,因此 Realm 非常适合持久化和访问数据。我喜欢它。但是,我也想将用户数据存储在云中(用于备份,但也以防我以后添加 Web 支持)。我知道这正是 Realm Object Server 的用途,但我认为我更喜欢使用 DynamoDB,原因如下:
1) 我已经投资了 DynamoDB 和亚马逊的身份验证 (Cognito)。
2) 我喜欢 Realm 实际上是一个关系数据库,因为我确实需要从客户端运行复杂的查询。但是,在后端,我主要只想以一种可以轻松访问和操作(如果需要通过 Lambda 函数进行操作)的方式备份所有数据。我对 NoSQL 解决方案完全满意,我的理解是 DynamoDB 是具有水平扩展的经济高效的数据库,这对我很有吸引力。如果我想通过 Realm Object Server 以这种方式访问数据,我的理解是每月至少要花费 1,500。
3) 无意冒犯 Realm 团队,但我被 Parse 关闭搞砸了,所以我想使用我可以信任的东西作为我的后端,可以使用 5 年以上。
无论如何,除此之外,这是我目前进行这项工作的方式:
1) 每当我创建或编辑 Realm 对象时,我都有逻辑将该更改映射到我的 DynamoDB 模式(它由远少于 Realm 的表组成)。
2) 我将这些更新称为 UpdateTasks
我将它们排入队列并根据需要合并它们(例如,如果您多次更改相同的属性)。
3)我通过队列并传递UpdateTasks
的 block 到我编写的 Lambda 函数,该函数将迭代更新并对 DynamoDB 执行必要的放置或更新命令。
4) 我有重试逻辑,以防您离线或请求失败
5) 假设如果你有一部新手机并登录,一切都正确同步,我有一个单独的 Lambda 函数,它将获取所有用户的数据并像以前一样填充 Realm 文件。
就像我说的那样,所有这些现在都在起作用,但感觉很脆弱,我不禁觉得我走错了路。另外,如果我想添加一些社交功能,它不支持双向同步或实时通信
所以我的问题是,这是否是使 Realm 与 DynamoDB 同步的合理方法,或者是否有更好/更健壮的方法?另外,如果我应该重新考虑使用 Realm Object Server 或其他东西而不是 DynamoDB,我很想知道原因。
这对我来说是一个重大决定,所以我很感激我能得到的所有帮助!谢谢
最佳答案
免责声明:我是 ROS 的领导者,所以我显然有偏见。我发布这个不是作为答案,而是作为不适合评论格式的一般评论。
I like that Realm is effectively a relational database because from the client I do need to run complex queries.
Also if I should reconsider using Realm Object Server or something else instead of DynamoDB, I'd be interested to hear why.
FooRequest
客户端上的对象,这些对象被同步,然后事件处理程序选择这些对象,处理它们,并创建一个
FooResponse
同步回客户端的对象。
关于swift - 将 Realm 与 Amazon DynamoDB 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42375009/
我是一名优秀的程序员,十分优秀!