2017-02-21 20 views
4

Почему удаление сервера приложений вызывает перезапуск кластера? Существуют ли сценарии, в которых можно удалить несколько приложений, и не запускать несколько перезапусков? Например, могу ли я: открыть транзакцию, получить конфигурацию, выполнить несколько вызовов admin:appserver-delete(), сохранить новую конфигурацию, затем зафиксировать транзакцию и только инициировать один перезапуск?MarkLogic: почему удаление сервера приложений приводит к перезапуску кластера?

MarkLogic = 8.0-3.2 & 8.0-4.2, Linux = RedHat

ответ

6

Перезагрузка самое главное необходимо отключить слушателя HTTP порт, который прослушивает порт конкретного приложения-сервера. Конфигурация для этого приложения-сервера (как и все сведения о конфигурации) совместно используется во всем кластере, а все узлы, назначенные группе, в которой установлен сервер приложений, имеют прослушиватели на том же порту. Поэтому для удаления приложения-сервера требуется перезапуск, по крайней мере, всех хостов в той же группе. Тем не менее, все же перезапуск в кластере.

Да, возможно иметь один оператор xquery, который, например, удаляет сразу несколько серверов приложений, повторно назначает хосты другой группе, возможно, также удаляет исходную группу, к которой они принадлежали, и завершает работу с просто один перезапуск. Функции admin позволяют вам делать несколько обновлений для конфигурации администратора и заканчивать только одним admin:save-configuration, чтобы сохранить ваши изменения.

Небольшой пример:

let $config := admin:get-configuration() 
let $config := admin:appserver-delete($config, 
    admin:appserver-get-id($config, xdmp:group(), "app-serv1") 
) 
let $config := admin:appserver-delete($config, 
    admin:appserver-get-id($config, xdmp:group(), "app-serv2") 
) 
let $config := admin:appserver-delete($config, 
    admin:appserver-get-id($config, xdmp:group(), "app-serv3") 
) 
return admin:save-configuration($config) 

На самом деле, admin:appserver-delete принимает последовательность Appserver идентификаторов, так что вы можете сжимать код в этом случае. Однако вы могли бы объединить все вызовы функций администратора так же, как это. Просто следите за тем, в каком порядке вы их выполняете, что может быть актуальным. Создайте базу данных, прежде чем применять настройки, отмените артефакты, прежде чем удалять их, и т. Д.

HTH!

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