Теперь я читаю дизайн Instagram, и я нашел такое описание своей системы балансировки нагрузки.Требуется уточнение nginx и балансировка нагрузки
Каждый запрос на серверы Instagram проходит через устройства балансировки нагрузки; мы использовали для запуска 2 nginx-машин и DNS Round-Robin между ними. Недостатком этого подхода является время, которое требуется для обновления DNS, если один из компьютеров нуждается в декомпозиции. В последнее время мы перешли к использованию балансировки эластичных нагрузок Amazon с тремя экземплярами NGINX, которые могут быть заменены и выведены (и автоматически выведены из строя, если они не прошли проверку работоспособности). Мы также завершаем наш SSL на уровне ELB, что снижает нагрузку на процессор на nginx. Мы используем Route53 Amazon для DNS, который недавно добавили в консоль AWS довольно удобный графический интерфейс.
Вопрос есть. Правильно ли, что на данный момент у них есть DNS-сервер, который использует RR, чтобы решить, на каком nginx-сервере отправить запрос. И каждый из этих серверов nginx в свою очередь передает запрос кластеру?
И второй вопрос. Какая разница между nginx и балансировщиком нагрузки. Почему мы не можем использовать nginx?
Я не понимаю, почему они используют балансировочные балансиры Nginx позади ELB. Разве ELB не является балансировщиком нагрузки? Почему бы им просто не избавиться от экземпляров Nginx и использовать ELB только перед серверами приложений? – Khang
@Канг, это хороший вопрос. Когда я прочитал цитату из инженерного блога Instagram, они используют два уровня балансировщика нагрузки: ELB в первую очередь обрабатывают SSL и выполняют некоторую необработанную балансировку, а затем уровень NGINX делает гораздо больше распространения трафика, чтобы они могли более точно управлять или переключаться по мере необходимости. ELB - довольно непрозрачная услуга, которую вы не можете набрать до или вниз по емкости (хотя есть несколько трюков, чтобы обойти это). –
Спасибо за ваш ответ – Khang