在appengine模块之间共享数据

时间:2017-05-06 14:57:30

标签: google-app-engine go module google-cloud-datastore google-cloud-platform

我正在尝试使用appengine数据存储区来共享appengine模块之间的密钥。 我正在一个模块中编写密钥,我可以从该模块中读取它。

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

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

1 个答案:

答案 0 :(得分: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

从上一个链接:

  

如果您的查询需要强一致性,请使用祖先   查询。 (要使用祖先查询,首先需要构建数据   为了强一致性。)祖先查询返回强一致性   结果。请注意,非祖先的key-only查询后跟a   lookup()不会返回强结果,因为非祖先   仅键查询可以从不一致的索引获得结果   在查询时。