2015-05-23 7 views
0

Мы используем Grails для разработки и развертывания на 4 серверах. Каждый сервер использует одно и то же приложение, но загружает определенную конфигурацию, такую ​​как конфигурация маршрута Camel или конфигурацию кварца. Мы используем IP-адрес сервера, чтобы различать различные конфигурации XML, такие как:Управление различными конфигурациями на разных серверах

if (IP == '10.25.3.3') { 
    import resource1.xml 
} else if (IP == '10.25.3.4') { 
    import resource2.xml 
} 

Но, как и развертывание на несколько серверов или добавления новых конфигураций, нам нужно добавить несколько условий или изменить код выше, когда IP-сервер изменения.

Есть ли какой-либо рекомендуемый способ управления этими конфигурациями и загрузка конфигурации в разных средах?

+2

Внешние конфигурации. Это ключ. Это даже упоминается в документации. –

+0

Спасибо, что ответили. У меня есть внешние конфигурации, такие как resource1.xml, resource2.xml для разных настроек верблюда, все в одной и той же базе кода приложения. Но я пытаюсь построить одну войну и развернуть на многие серверы и загружать определенную конфигурацию, не зависящую от IP-адреса сервера, потому что мне нужно изменить или добавить условия IP при изменении или развертывании IP-сервера на новом сервере. Итак, я хочу спросить, есть ли способ загрузить различные конфигурации в разных средах, а не в зависимости от IP-адреса сервера? – Blackdiz

ответ

1

Я упомянул в комментарии использование externalized configurations. Я расскажу об этом сейчас в полном ответе.

Ваше приложение должно быть настроено. Смысл, любые настройки, которые ваше приложение должно выполнять, которые относятся к среде/серверу, на котором он развертывается, должны основываться на значениях конфигурации.

Эти значения, обычно устанавливаемые в Config.groovy, должны загружаться извне приложения WAR. Значит, они не упакованы в приложение, а находятся на сервере, к которому развертывается приложение. Приложение должно загрузить эти значения при запуске и соответствующим образом настроить.

documentation имеет целую секцию, посвященную этой теме и заслуживает внимания.

Хотя сначала может показаться странным, что у него есть файл конфигурации, который не является частью вашего приложения, но я заверяю вас, что это правильный подход к решению этой проблемы. Это очень стандартная ситуация.

+1

Поэтому, когда я хочу развернуть приложение на новый сервер, я просто копирую соответствующие конфигурации на сервер и использую Config.groovy для загрузки конфигурации. Спасибо за более подробное объяснение, я попробую. – Blackdiz

Смежные вопросы