在谷歌应用程序引擎中使用低级 API 进行数据存储?是不是很糟糕?

2024-04-30

关于如何使用数据存储的低级 api 的文档很少,而关于 JPA 和 JDO 以及如何转换为 JPA 和 JDO 的文档却很多。

我的问题是:根据 JPA 或 JDO 规范进行编码而不是直接访问数据存储的低级 api 有什么优势吗?

乍一看,这似乎简单明了,但我不确定是否有充分的理由不这样做。

谢谢 CX


您不应该直接使用低级 API。它的存在供框架开发人员在其之上创建高级库。该文档是针对那些人的(基本上只有 JavaDoc)。

Google 正式支持 JDO 和 JPO 框架(它们是 Java 标准,但不一定适合非关系数据存储 (*)),但有一些“更接近金属”的替代方案,它们承诺更容易理解、更轻量、更快。

See 客观化 http://code.google.com/p/objectify-appengine/, twig http://code.google.com/p/twig-persist/, SimpleDS http://code.google.com/p/simpleds/,并且这个问题 https://stackoverflow.com/questions/2394280/looking-for-opinions-on-using-objectify-appengine-instead-of-jdo-in-gae-j.

在功能方面,替代库提供了一些功能。例如,对底层数据存储实体的访问为您提供了二进制表示形式,您可以将其进行内存缓存,而无需类可序列化。您可以对索引进行细粒度访问(您可以执行部分​​索引),并且 Twig 还为您提供异步查询,这可能很有用。

(*) 对于 JDO/JPA 也存在一些强烈反对,因为它会导致几秒钟的启动时间,这对 App Engine 来说很重要,因为 Google 在几分钟不活动后就会关闭您的 JVM,并且下一个用户需要等待十秒或更长时间。然而,我认为这是一个根本上有缺陷的论点,因为当您使用 Java 时,您希望使用 JDO 或 Spring 等框架。谷歌甚至也做这样的广告。如果这些框架(尤其是 Google 本身认可的框架)无法在 App Engine 上合理使用,那么 Google 需要解决这个问题,而不是框架作者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在谷歌应用程序引擎中使用低级 API 进行数据存储?是不是很糟糕? 的相关文章

随机推荐