gpt4 book ai didi

java - Google AppEngine 上的不同环境配置

转载 作者:搜寻专家 更新时间:2023-11-01 03:25:24 27 4
gpt4 key购买 nike

我有一个在 Google AppEngine 上运行的网络应用程序。

我有一个生产环境、一个暂存环境和多个开发和 QA 环境。有许多配置参数在生产环境和其他环境之间应该有所不同——例如我们集成的服务的 API key (例如 GoogleAnalytics)。其中一些参数在代码中定义,其他在 web.xml 中定义(例如,在过滤器的 init-param 标记内),在其他情况下也是如此。

我知道有几种方法可以做到这一点:

  1. 将所有参数保存在数据存储中(并可能将它们缓存在每个正在运行的实例/Memcached 中)

  2. 在 web.xml 中部署具有不同系统属性/环境变量的应用程序

  3. 其他选项...?

无论如何,我很想听听您解决此问题的最佳做法。

最佳答案

我最喜欢的方法是将它们全部存储在数据存储中,并且只有一个主记录包含所有不同的属性,并充分利用内存缓存。通过这样做,您不需要拥有不同的配置文件或使用不同的配置设置污染您的代码。相反,您可以从管理表单中部署和更改此值,您必须创建该表单才能更新此主记录。

此外,如果您要存储 token 和 key ,那么您就会意识到将它们放在 web.xml 或代码中的任何其他位置绝对不是一个好主意,而是将每个应用程序放在更安全的东西上,例如数据存储。

一旦你有了它,你就可以拥有一个全局函数,它将按名称检索属性,如果你想从你应用程序的任何地方获取 Google Analytics ID,你应该通过这样的东西来使用它:

getProperty('googleAnalyticsID')

这个全局 getProperty() 函数将尝试通过以下步骤找到这个值:

  • 检查是否存在于memcache中并返回
  • 如果不在内存缓存中,则从数据存储的主实体更新内存缓存并返回
  • 如果不在数据存储中,则创建一个具有默认值的实体,更新内存缓存并返回

当然,关于如何从该模型检索数据有不同的方法,但想法是相同的:存储在一条记录中并使用内存缓存。

关于java - Google AppEngine 上的不同环境配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251346/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com