Обзор закрепления приложений/балансировки нагрузки
Преимущества:
- Повышение производительности
- Разделение/изоляция ресурсов
Цель
Целью этого упражнения является проверка распределения приложений в среде и реализация балансировки нагрузки или «закрепления приложений», если необходимо. Сценарии, при которых может потребоваться настраиваемая балансировка нагрузки внутри Qlik Sense Enterprise, включают:
- Разделение опубликованных приложений от неопубликованных (или иначе – выделенный узел/узлы для разработки)
- Распределение крупных приложений на выделенный потребительский узел/узлы.
- Распределение приложений определенного направления бизнеса на выделенный потребительский узел или узлы (например, изоляция приложений в потоках для группы продаж на конкретный узел).
Предполагается, что, прочитав этот пост, администратор Qlik поймет, как использовать эту возможность и реализовать ее в соответствии с требованиями организации.
Результат Плана производственных мощностей может быть хорошим индикатором, что такой процесс необходим.
В этом руководстве рассмотрены два конкретных сценария (2 и 3), указанные выше, и даны ссылки на сценарий 1, чтобы у администратора был шаблон с несколькими вариантами на тот случай, если ему потребуется реализовать настраиваемую балансировку нагрузки для своего сайта Qlik.
Что такое балансировка нагрузки в Qlik Sense Enterprise?
Внутри Qlik Sense Enterprise есть функция, которая позволяет администратору настраивать распределение приложений на своем сайте через движки Qlik. Эта функция использует правила балансировки нагрузки для определения условий, при которых приложения Qlik должны быть доступны на заданном движке Qlik. Конечным результатом этой функции является то, что администратор получает возможность изолировать или распределить приложения Qlik в зависимости от потребностей своего сайта. Пример этого можно проиллюстрировать так:
В этом примере администратор прикрепил приложения 1 и 2 к узлу "Потребление 1", а приложения 3-5 - к узлу "Потребление 2". Приложения 1–5 также доступны для обоих узлов внутреннего планировщика.
Хотя сценарии, которые будут рассматриваться в этом руководстве, сосредоточены на изоляции приложений с точки зрения работы конечных пользователей, те же принципы могут применяться и к задачам обновления этих приложений. Когда задача запускается, любой узел, имеющий планировщик и движок, для которого настроена балансировка нагрузки, имеет право выполнить это обновление.
Примечание
В Qlik Sense Enterprise есть неизменяемое правило по умолчанию с именем ResourcesOnCentralNode , это означает, что на центральном узле должны быть доступны все приложения Qlik. Это правило нельзя изменить из-за архитектурных предположений при разработке Qlik Sense Enterprise. Например, приложения, которые необходимо перенести, будут перенесены движком центрального узла. Практически это означает, что при попытке отделить/изолировать приложения с помощью правил балансировки нагрузки, ядро центрального узла не должно быть настроено как механизм балансировки нагрузки для любого виртуального прокси. В противном случае приложения могут открываться движком центрального узла.
Сценарий 1 – Изоляция продуктива от разработки
В этом сценарии администратор хочет создать специальный узел разработки, на котором размещаются только неопубликованные приложения Qlik, отдельно от продуктивного узла, на котором размещены опубликованные приложения Qlik. Обратитесь к этому документу в сообществе Qlik для получения рекомендаций по этому сценарию.
Сценарий 2 – Распределение крупных приложений Qlik
В этом сценарии администратор Qlik хочет изолировать определенные, более крупные приложения Qlik на выделенном узле в кластере. Этот сценарий может оказаться идеальным в ситуациях, когда на сайте размещено несколько больших приложений Qlik, а остальные приложения в портфеле сайта – небольшого размера. Эта изоляция позволяет сайту не пытаться равномерно распределить нагрузку для избранных приложений, что приведет к дублированию использования ОЗУ на узлах в кластере. Дублирование для небольших приложений может быть идеальным для повышения отказоустойчивости, но у сайта может не быть вычислительной мощности для обеспечения отказоустойчивости этих более крупных приложений Qlik, или если администратор хочет обеспечить более предсказуемое взаимодействие с пользователем за счет повторного использования кеша на одном Engine ( или 2+ для отказоустойчивости).
Анализатор метаданных приложений может помочь определить, есть ли на вашем сайте Qlik Sense аномально большие приложения.
Обзор конфигурации
- Создайте Custom properties (настраиваемое свойство) NodeType для приложений и узлов с параметром значения Dedicated
- Примените значение Dedicated к узлу, на котором размещены большие приложения Qlik.
- Примените значение Dedicated к большим приложениям Qlik, которые будут изолированы. Повторите этот процесс для всех приложений, которые необходимо изолировать.
Подсказка: Селектор столбцов может включить настраиваемое свойство NodeType в разделе приложений QMC, чтобы иметь возможность фильтровать все приложения с назначенным значением Dedicated настраиваемого свойства.
- В разделе правил балансировки нагрузки QMC отключите правило по умолчанию ResourcesOnNonCentralNodes. Это правило по умолчанию распределяет нагрузку всех приложений, которые не находятся в потоке приложений мониторинга, на все узлы RIM. Если включены другие настраиваемые правила балансировки нагрузки, рассмотрите возможность их отключения, если они не являются неотъемлемой частью вашего сайта Qlik.
-
Создайте новое правило балансировки нагрузки со следующими значениями:
- Name (Название): Dedicated Apps to Dedicated Node (выделенные приложения для выделенного узла)
- Description (Описание): Apps with the NodeType custom property value of Dedicated will be isolated to the node which has the Dedicated custom property value. All non-“Dedicated” apps will available on remaining RIM nodes (приложения со значением настраиваемого свойства NodeType, равным Dedicated, будут изолированы от узла, имеющего значение этого же настраиваемого свойства Dedicated. Все не «выделенные» приложения будут доступны на оставшихся узлах RIM).
- Resource Filter (Фильтр ресурсов): App_*
- Actions (Действия): Load balancing (балансировка нагрузки)
- Conditions (Условия): ((node.@NodeType=resource.@NodeType) or (node.@NodeType.Empty() and resource.@NodeType.Empty()))
- Context (Контекст): Both in hub and QMC (в Hub и в QMC)
- Предварительный просмотр покажет эффект от балансировки нагрузки
Примечание
Может быть полезным нажать кнопку «Транспонировать», чтобы просмотреть полученный предварительный просмотр в более удобном формате.
Проверка
- Убедитесь, что виртуальный прокси-сервер, который будет использоваться конечными пользователями, включает в себя как «выделенные» узлы, так и невыделенные узлы.
- Из под УЗ пользователя, который, как ожидается, увидит одно из приложений, прикрепленных к выделенному узлу (узлам), откройте Хаб.
- Откройте приложение:
- Создайте новый лист
- Добавьте объект визуализации KPI с мерой =ComputerName() , который позволит увидеть названия узла, на котором развернуто данное приложение Qlik.
Сценарий 3 – Разделение приложений по направлениям деятельности (потокам)
В предыдущем сценарии администратор Qlik изолировал определенные приложения Qlik от выделенного узла в кластере. В этом сценарии администратор Qlik изолирует все приложения находящиеся в определенных потоках на определенные узлы. Этот вариант использования имеет смысл, когда сайт Qlik обслуживает несколько клиентов или отделов, и администратор хочет изолировать использование приложений Qlik этими отделами/группами друг от друга. В этом сценарии будет использоваться настраиваемое свойство на уровне потока, а не на уровне приложения.
Обзор конфигурации
- Создайте настраиваемое свойство StreamLevelNode для потоков и узлов со значениями Operations и Sales.
- Примените значение Operations к узлу, на котором будут размещены приложения этой группы. Сделайте то же самое для значения Sales .
- Примените значение Operations к потоку операций и Sales к потоку продаж.
- В разделе правил балансировки нагрузки QMC отключите правило по умолчанию ResourcesOnNonCentralNodes. Это правило по умолчанию распределяет нагрузку всех приложений, которые не находятся в потоке приложений мониторинга, на все узлы RIM. Если включены другие настраиваемые правила балансировки нагрузки, рассмотрите возможность их отключения, если они не являются неотъемлемой частью вашего сайта Qlik.
-
Создайте новое правило балансировки нагрузки со следующими значениями:
- Name (Название): Dedicated Apps to Dedicated Node (выделенные приложения для выделенного узла)
- Description (Описание): Apps who are members of streams with a given StreamLevelNode custom property value will be load balanced to nodes with that same custom property value (приложения, которые находятся в потоках с заданным значением настраиваемого свойства StreamLevelNode, будут сбалансированы по нагрузке на узлы с тем же значением настраиваемого свойства)
- Resource Filter (Фильтр ресурсов): App_*
- Actions (Действия): Load balancing (балансировка нагрузки)
- Conditions (Условия): ((node.@StreamLevelNode=resource.stream.@StreamLevelNode) or (node.@StreamLevelNode.Empty() and resource.@StreamLevelNode.Empty()))
- Context (Контекст): Both in hub and QMC (в Hub и в QMC)
- Предварительный просмотр покажет эффект правила балансировки нагрузки.
Примечание
Может быть полезным нажать кнопку «Транспонировать», чтобы просмотреть полученный предварительный просмотр в более удобном формате.
Проверка
- Убедитесь, что виртуальный прокси-сервер, который будет использоваться конечными пользователями, включает все узлы RIM
Примечание
В этом примере нагрузка приложений балансируется только на двух узлах RIM. В другой, более надежной среде администратор, вероятно, захочет включить по крайней мере один дополнительный движок, чтобы гарантировать доступность приложений, которые не являются членами потоков, которые были изолированы.
- Из под УЗ пользователя, который должен видеть один из потоков, приложения которого закреплены на изолированном узле, откройте Хаб.
-
Откройте приложение:
- Создайте новый лист
- Добавьте объект визуализации KPI с мерой =ComputerName() , который позволит увидеть названия узла, на котором развернуто данное приложение Qlik.