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

在GCP上,是否有一种方法可以配置具有多区域可用性的App Engine+Cloud Datastore应用程序?

巴博耘
2023-03-14

语境

App Engine服务是区域性的。Cloud Datastore虽然具有多区域位置,其中数据在同一位置内的多个区域复制,但尚不清楚当使用其中一个多区域位置时,App Engine service是否也具有多区域可用性。我们理解App Engine在一个区域中使用多个区域来提供高可用性,但需求文档要求设置多区域(主动-主动)App Engine。

  • 使用2个不同的GCP项目在2个不同的地区承载相同的AppEngine+DataStore应用程序。其中一个将是主要的,另一个将是活动备用的。
  • 使用计划作业将数据从Datastore数据从主区域导出到辅助区域,但要遵守此处描述的导入/导出准则。
  • 为了自动化数据导出和导入,可以使用App Engine、cron作业和/或云函数的组合。
  • 数据备份的频率可以根据应用程序RPO和RTO的需要来决定。

云数据存储导出和导入的基本原理

目前还没有其他内置的(GCP管理的)复制机制用于跨区域的Datastore数据复制。

问题

Q1:有没有一种方法可以配置多区域可用性的App Engine+Cloud Datastore应用程序?要求是在2个地区有一个主动-主动配置。这可能吗?正确的方法是什么?

Q2:为了使用上面给出的解决方案选项,需要有一种方法将主要和次要App Engine应用程序的域名映射到相同的DNS名称,并使用某种加权DNS映射,以便在需要故障转移时自动将流量路由到次要App Engine实例,

问3:有没有推荐的方法来做到这一点?云DNS或HTTP(s)LoadBalancer--结合Stackdriver提供了一种实现此目的的方法吗?(注意-App Engine应用程序没有公共静态IP,GCP提供域名。)关于自动化数据存储导出和导入的最佳方式,Google有什么建议吗?最简单的解决方案是在VM中使用gcloud命令行。还有一些方法可以通过App Engine、Cron作业和/或云功能来实现自动化?谷歌推荐什么?

共有1个答案

隗瑞
2023-03-14

据我所知,你想要完成的事情并不像你描述的那样可能。

有了多区域datastore,数据库就有了很好的可用性。如果您的目标是实例的可用性,那么一种选择是从属于不同项目、计算引擎或完全不同平台的实例连接到相同的数据库。有关此操作的详细信息,请参阅

唯一的挑战是额外的延迟,但您将能够避免与导入/导出和同步过程相关联的许多复杂性。假设区域级别的中断是例外,您很少为这一额外的延迟支付费用。

我不确定如何使用这种策略来完成自定义域设置,当出现停机时,域将解析到其他区域的实例。与使用app engine相比,使用GCP的其他计算选项可能会更好,但仍然可以利用云数据存储来实现整个堆栈的多区域可用性。

 类似资料:
  • 我要求Spring Boot应用程序加载一些理想地适合某种迷你电子表格的配置。几乎所有配置都由绑定到POJO的YAML属性文件组成,因此: 如果YAML被构造为这样的对象序列,则这可以很好地工作: 然而,从这个配置的用户/作者的角度来看,如果数据被组织成一个“电子表格”,那就太好了,因为他们将能够在彼此的上下文中看到各种值,而不是上面的大列表(大约有十几个条目)。类似这样的东西: 这是有效的YAM

  • 问题内容: 假设我有以下代码: 这段代码的问题在于,协程内部的循环永远不会完成第一次迭代,而大小会不断增加。 为什么会这样发生,我该怎么解决? 我无法摆脱单独的线程,因为在我的真实代码中,我使用了单独的线程与串行设备进行通信,而且我还没有找到使用的方法。 问题答案: 不是线程安全的,因此您不能直接在多个线程中直接使用它。相反,您可以使用,它是提供线程感知队列的第三方库: 还有(全披露:我写了它),

  • 2)当前以美国为中心的托管是否影响英国等地的性能?例如,如果有人导航到我在伦敦的web应用程序,那么调用GCP云功能的网页是否位于美国,而GCP云功能反过来获取位于伦敦等地的数据?

  • 是PHP的可移植咨询文件锁定功能。他们明确宣传它甚至可以在windows下工作: Flock()允许您执行一个简单的读/写模型,几乎可以在所有平台上使用(包括大多数Unix衍生产品,甚至Windows)。 我想把一个也可移植的超时阻塞(和没有忙碌的等待工作周围的选项)。在UNIX中,这可以简单地通过设置一个警报来实现,该警报将发送一个: 是否有一种可移植的方法可以在阻塞上设置超时?如果有,如何?

  • 我有一个Spring Boot应用程序,用作事件记录器。每个客户机通过REST api发送不同的事件,然后将这些事件保存在数据库中。但是除了简单的事件之外,我还需要客户机将他们的执行日志发送到Spring Boot。 现在,在客户机执行完毕后上传日志很容易,而且有很多例子。我需要的是在客户机执行时逐行记录日志,而不是等到客户机完成。 我花了很长时间在谷歌上寻找可能的答案,但我找不到任何符合我需要的

  • 问题内容: 有没有办法在给定类的所有方法上设置断点? 我有一个庞大的(2300行)旧式类,我需要在所有方法调用上设置断点以了解这种混乱的工作方式。 问题答案: 我发现了解决方法: 1.我将“ Toggle Brakepoint”热键设置为+ 。 2.之后,您可以单击第一种方法 。3.使用“切换制动点” 4. + -转到“下一方法”。(+ -转到上一个方法。) 5.重复3步。