我们正在使用Grails在4台服务器上开发和部署。每个服务器使用相同的应用程序,但加载特定配置,例如Camel路由配置或Quartz配置。 我们使用服务器IP来区分不同的xml配置,例如:
*(x_ptr->a) = 42.0 ;
但是,在更多服务器上部署或添加更多配置时,我们需要添加更多条件或在服务器IP更改时更改上述代码。
是否有任何建议的方法来管理这些配置并在不同环境中加载配置?
答案 0 :(得分:1)
我在评论中提到了使用externalized configurations
。我现在以完整的答案对此进行扩展。
您的应用程序应该是可配置的。这意味着,您的应用程序需要运行的任何设置都应该基于配置值来特定于它所部署的环境/服务器。
这些值通常在Config.groovy
中设置,应从应用程序WAR外部加载。这意味着,它们不是与应用程序打包在一起,而是在应用程序部署到的服务器上。应用程序应在启动时加载这些值并相应地进行自我配置。
documentation有一整段专门讨论这个主题,非常值得一读。
虽然看起来很奇怪,但最初有一个配置文件不属于您的应用程序,但我向您保证这是解决此问题的正确方法。这是一个非常标准的devops情况。