Skip to content

Балансировка нагрузки во Flussonic

Балансировка нагрузки во Flussonic

Балансировка нагрузки — это процесс распределения запросов клиентов между кластером серверов в соответствии с некоторым алгоритмом.

Балансировка преследует следующие цели:

  • предотвращение перегрузки одного из серверов кластера;

  • оптимизация использования ресурсов группы серверов;

  • максимизация пропускной способности.

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

Flussonic может балансировать пользователей между несколькими серверами Flussonic Media Server. Балансировка нагрузки достигается за счёт перенаправления запросов клиентов.

Вы можете настроить балансировку нагрузки без использования IPTV плагина или Catena. Теперь это можно сделать прямо во Flussonic.

Существуют разные алгоритмы балансировки нагрузки. Выбор алгоритма зависит от Вашей цели и задач. Во Flussonic реализованы три метода (режима) балансировки:

  • Least Connection (Client) Method

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

  • Least Output Bitrate

Направляет клиентский запрос на наименее загруженный сервер по значению выходного битрейта. Необходимо указать значение параметра max_bitrate (в бит/с, можно также указать в Мбит/с 40M или Кбит/с 40К).

Warning

max_bitrate необходимо указывать для каждого сервера в кластере, иначе балансировщик будет работать некорректно.

  • Bandwidth Usage

Распределяет клиентские запросы, исходя из значения границы пропускной способности сервера. Никаких параметров для настройки указывать не нужно.

В каком случае необходимо использовать балансировку нагрузки?

Если у вашей стриминговой платформы или вашего стримингового сервиса более 10 000 зрителей.

Для того, чтобы использовать балансировщик во Flussonic, добавьте его в файл конфигурации (/etc/flussonic/flussonic.conf):

balancer lb0 {
  mode bitrate;
  peer p1 max_bitrate=60M;
  peer p2 max_bitrate=40M;
  peer p3 max_bitrate=30M;
}

Укажите следующие параметры:

  • lb — имя балансировщика;

  • peer — пир (например, peer1.example.com);

  • mode — режим балансировки (bitrate, usage, clients). По умолчанию используется mode bitrate.

Пример URL для обращения к потоку channel1:

http://FLUSSONIC-IP/lb/channel1/index.m3u8

Вы также можете определить несколько балансировщиков, если в этом есть необходимость.

Как настроить балансировщик

  1. Определите группу серверов для распределения нагрузки и укажите один и тот же cluster_key в конфигурационном файле каждого из них, чтобы связать их.

  2. Выберите сервер для балансировки. Затем настройте балансировщик с помощью balancer в файле конфигурации сервера (также не забудьте указать cluster_key):

cluster_key SOME_CLUSTER_KEY;
balancer lb0 {
  mode bitrate;
  peer stream.example.com max_bitrate=60M;
  peer stream.example.tv max_bitrate=40M;
  peer stream.exmpl.com max_bitrate=30M;
}

В примере выше мы определили балансировщик lb0 с 3-мя серверами и режимом балансировки по значению выходного битрейта (mode bitrate).

Пример настройки балансировщика по количеству активных зрителей mode clients (mode usage настраивается похожим образом):

cluster_key SOME_CLUSTER_KEY;
balancer lb0 {
  mode clients;
  peer stream.example.com;
  peer stream.example.tv;
  peer stream.exmpl.com;
}