我一直在阅读有关提供应用程序托管的 Google AppEngine 的一些内容。我一直在尝试它,因为我认为它看起来很有趣,但我有点担心数据库部分。
假设我正在本地开发我的 Java 应用程序。我不想每次更改代码时都部署到 Google,所以我在我的开发机器上设置了一个漂亮的小 Servlet 容器来轻松测试。使用 AppEngine,您可以使用他们的数据存储 API 存储内容,这基本上允许您使用 Java 对象对数据进行建模 - 这很好。
但是,这些数据似乎嵌入在应用程序代码本身中(在部署到 Google 的 .war 中)。我可以简单地在本地使用他们的数据存储 API 吗?它将如何存储在我的本地机器上?这一切是否都由他们处理,以便我只需要担心使用数据存储 API,当我将其部署到 Google 时,数据的存储方式将与在本地计算机上的存储方式不同?
我只是有点困惑,因为我习惯于将数据部分从我的应用程序代码中分层。
我希望我足够清楚。谢谢。
最佳答案
开发 数据存储和 生产 数据存储是两个不同且分开的东西:
开发数据存储通常是一个名为 local_db.bin
的基于文件的数据存储,它只是用于将数据存储在测试环境中;部署应用程序时,数据不会复制到生产环境。
这种数据存储旨在与相当少的实体一起使用,其性能与基于 Big Table 的强大生产数据存储野兽无关。
您需要做的就是使用数据存储 API,它在您的代码和底层数据存储之间创建一个抽象级别;在测试中,您的数据将存储在本地数据存储文件中,在生产中,创建的数据将保存到 Google App Engine 数据存储中,并具有这意味着的所有功能和限制。