0

我试图使用appengine数据存储来在appengine模块之间共享一个键。 我在一个模块中写入密钥,我可以从该模块读取密钥。在appengine模块之间共享数据

试图从第二个模块读取它不起作用,我没有得到这样的实体响应。

在模块之间共享密钥的最佳方式是什么?我可以使用数据存储吗?从我在文档数据存储中读取的内容在服务之间共享。但它似乎并不适合我。

回答

1

您可能会遇到最终的一致性问题。数据存储是分布式的,所以有可能一个服务碰到数据的一致版本,而另一个服务(模块)碰到另一个过时的版本。数据存储绝对是在模块之间共享数据的一种方式,因此它可能是一致性问题,在这种情况下,您不能保证能够立即读取数据,除非您重新构建数据或查询强烈一致,或者它可能是一些其他问题,如你在其他模块中有错误的键,或者以某种方式命中不同的命名空间。

下面是数据存储一致性一些资源: https://cloud.google.com/datastore/docs/concepts/structuring_for_strong_consistency https://cloud.google.com/datastore/docs/articles/balancing-strong-and-eventual-consistency-with-google-cloud-datastore/ https://cloud.google.com/datastore/docs/best-practices

从最后一个环节:

如果您需要为您的查询的强一致性,使用祖先 查询。 (要使用祖先查询,首先需要构建数据 以获得较高的一致性。)祖先查询返回的结果强烈一致,结果为 。请注意,在查询( )之后的非祖先密钥查询不返回强结果,因为非祖先 仅密钥查询可以从查询时不一致的 索引获得结果。