GAE标准迁移到Go 1.11 / 1.12后进行缓存

时间:2019-05-02 16:29:19

标签: google-app-engine

我几乎已经基于google's instructions.

进行了迁移

非常好,不必调用任何应用引擎库。

但是,现在我必须替换对app-engine-standard memcached的调用。

指南的内容如下:“要在App Engine上使用Memcache服务,请使用Redis Labs Memcached Cloud而不是App Engine Memcache。”

这是我唯一的选择;第三方?如果选择了GCE,他们甚至不会在其页面上列出价格。

我还看到在标准环境中,如何使用指南在Connecting to internal resources in a VPC network.上有一个指南

在该链接中提到了Cloud Memorystore。如果建议这样做或可以按照GAE标准进行,我找不到任何示例。当然,以前不可能,但是现在GAE标准已经变得更加“标准”了,我认为应该可以吗?

感谢您提供有关最佳前进方式的建议。

3 个答案:

答案 0 :(得分:0)

我一直在考虑这个。第二代实例的内存是内存的两倍,因此,如果不需要全局缓存(如创建后项不会更改-(使用sha256命名项)),则可以运行自己的本地线程安全内存缓存(例如{{3 }}),并为其分配一些额外的内存。它会比Memcache更快,因此可以更快地处理请求,从而使实例数保持较低。 通过在实例之间使用pub / sub,可以将数据更改为全局数据,但我认为这需要大量工作。

答案 1 :(得分:0)

Memorystore似乎是Google的替代品: https://cloud.google.com/memorystore/

您使用VPC连接到它: https://cloud.google.com/appengine/docs/standard/go/connecting-vpc

A,每天的费用约为$ 1.20 / GB,没有免费配额。

因此,如果您的数据保持不变,并且一次只需要少于100MB的缓存,那么第一个答案可能会更好(免费)。另外,您可以控制缓存的最大大小,因此数据不会爆炸实例。

但是,如果您的数据发生更改或需要更多缓存,则MemoryStore可以更直接地替代MemCache-只需花钱。

答案 2 :(得分:0)

为了方便迁移到 1.12,我一直在考虑使用这个解决方案:

  1. 使用 1.11 运行时创建专用应用。
  2. 设置 twirp 端点以充当所有已弃用的应用引擎服务(内存缓存、邮件、搜索...)的代理