我在 Google App Engine 上有一个应用程序。它处理实时数据而不考虑过去的数据(因此没有数据存储/完全持久性),因此在实例崩溃或新部署的情况下我不需要任何非常可靠的东西来恢复数据。
由于负载,我有多个实例需要共享一个对象列表。我查看了 memcached,但这需要映射样式界面中从键到对象的映射,而不能转储所有条目。
此外,我希望使条目过期,除非“碰撞”,尽管这可以在用户代码中处理。
什么是不涉及数据存储的合理解决方案?我希望它能够处理来自多个应用程序引擎实例的并发读取和写入(这就是为什么简单的 Java 对象声明不起作用,因为它是每个实例的)。
Memcached 可能存储单个对象,但它需要获取对象、获取某种锁、修改它并将其写回缓存。
注意 现有应用程序引擎数据存储中存在不相关的数据。
澄清:我需要所有的实体。实体本身可以随时修改、过期或半自动删除或从头开始创建。我不是特别能够前往计费后端。
编辑:是的,它适用于本地存储的单个列表,但我预计需要多个实例的峰值。尽管我不介意同步延迟,但我至少需要一种尽力而为的方法来获取完整列表。但是,没有后端的所有实例之间的循环通信将相对不可扩展,并且我将更多地陷入租用服务器的场景中。
我不在乎在另一个前端实例上提交更改后更改是否不会立即完成。然而,这些变化需要 100% 确定地通过。我只看到 lastSeen 值(long)增加的插入和更新。更新也应该在所有实例上复制或反映。
注意:由于当时的情况,我无法授予赏金,因此我无法控制赏金已退还。我会在可能的情况下重新添加。