当前位置: 首页 > 知识库问答 >
问题:

Google App Engine flexible中的MongoDB实例可以有状态吗?

司马昕
2023-03-14

因为我希望在GAE flexible中构建我的所有微服务,所以我考虑使用相同的过程,即部署另一个定制的Dockerfile来构建我的Mongodb实例。

现在我想知道这是否是正确的方法?在这种情况下,我担心Mongodb实例的状态丰满性。当实例重新启动或部署另一个版本时,数据会丢失吗?对于我正在尝试做的事情,是否有其他更推荐的方法?

PS:我不想使用Google Datastore,主要是因为我使用Symfony PHP框架和很多有用的包来与Mongo交互。

共有1个答案

都阳
2023-03-14

我不建议在GAE上部署MongoDB,这样很容易丢失数据,而且我不认为GAE特性是为托管数据库而设计的。我想这比解决问题更让人头疼。

如果你想使用docker图像,我建议使用Google容器引擎。你只需要记住,你必须使用一个持久的磁盘,以不松散的数据。对于开发,甚至小型生产应用程序,它应该满足您的所有需求。

但根据我的经验,在Google Compute Engine实例上部署MongoDB服务器要好得多,效率也高得多。您可以使用Cloud Launcher进行部署(Cloud Launcher将启动几乎可以使用的MongoDB,您只需添加用户/身份验证即可)

 类似资料:
  • 在关于lambdas和匿名类之间差异的一个论点中,在本文中: Java8 Lambdas与匿名类 我读到一条声明,“lambda可以有状态”,就像匿名类实例一样。 据我所知,您无法添加专门属于lambda的用户定义状态,因为无法在java lambda函数的实现上定义实例成员。 例如: 我只是想澄清一下,我并不是想把状态引入lambda,因为我认为这违背了我的意图。我只是想验证或反驳一位知名人士就

  • 一个持久化类的实例可能处于三种不同状态中的某一种。这三种状态的定义则与所谓的持久化上下文(persistence context)有关。Hibernate 的 Session 对象就是这个所谓的持久化上下文。这三种不同的状态如下: 瞬态(transient) 该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键值)。 持久化(persistent) 实例目前与某个持久化上下文有关联。它

  • 问题内容: 在react.js中,将超时引用存储为实例变量(this.timeout)或状态变量(this.state.timeout)更好吗? 要么 这两种方法都有效。我只想知道一个使用另一个的原因。 问题答案: 我建议将其存储在实例上,而不是存储在实例中。每当更新时(应仅按注释中的建议完成),React就会调用并对实际DOM进行任何必要的更改。 由于的值对组件的呈现没有影响,因此不应存在于中。

  • 问题内容: 静态变量只有实例(也就是说,它们是类的一部分)。例如:Math.pi 有什么办法可以有多个静态变量实例吗?我听说有一些与Classloader相关的东西吗? 问题答案: 如果发现需要一个静态变量的多个实例,则强烈表明您不应该首先使用静态变量。 是的,如果同一类加载到不同的类加载器中,则该类的每个副本将具有其自己的静态变量。但是,唯一可以静态引用这些静态变量的代码将是由同一类加载器加载的

  • 问题内容: 需要使用一对多和多对一关系。这是我对象中的双向关系,因此我可以从任一方向来回移动。是推荐的解决方法,但是,我听不懂。有人可以解释: 推荐的使用方式是什么? 它解决什么目的? 就我的示例而言,这是带有注释的类: 拥有许多 许多 属于一个 A 航空公司: 航空公司航班: 编辑: 数据库模式: AirlineFlights具有idAirline作为ForeignKey,而Airline没有i

  • 问题内容: 在Oracle的Java 教程中,我找到了以下文本: 与类方法和变量一样,静态嵌套类与其外部类相关联。与静态类方法一样,静态嵌套类不能直接引用其封闭类中定义的实例变量或方法-它只能通过对象引用来使用它们。 注意:静态嵌套类与它的外部类(和其他类)的实例成员进行交互,就像其他任何顶级类一样。实际上,静态嵌套类在行为上是顶级类,为了包装方便,该顶级类已嵌套在另一个顶级类中。 静态嵌套类使用