Я получил задание сбалансировать нагрузку на несколько серверов icecast для интернет-радио. Но после нескольких часов исследования я зашел в полный тупик и понятия не имею, как их сбалансировать.
Я пытался перенаправить пользователя на разные потоки, но некоторые программы, которые используют наши слушатели, не поддерживают перенаправления.
Другой вариант, который я имел в виду, - это Round Robin DNS, но это не кажется отличной идеей, поскольку некоторые клиенты не соблюдают TTL и кешируют серверы на несколько дней.
Если бы кто-нибудь мог послать мне правильное направление, это было бы здорово! Спасибо за любую помощь заранее.
RR-DNS - самое простое и достаточно эффективное решение для этого.
Тот факт, что некоторые клиенты будут кэшировать результат немного дольше, статистически не имеет значения. У вас будет примерно равномерное распределение. В любом случае вы не хотите максимально использовать возможности подключения к серверу.
Кстати: Я надеюсь, что у интернет-радио есть веские причины для балансирования. Один экземпляр Icecast легко масштабируется до более чем 10000 слушателей (ограничен только пропускной способностью сети сервера). Я продолжаю смотреть по радио, где в среднем менее 200 слушателей обеспокоены этим, и это просто напрасная трата усилий.
PS: Я немного удивлен, что все еще есть клиенты, которые ломаются на 301/302, можете их назвать? Мы могли бы подойти к ним как к Xiph.org / проекту Icecast.