Я создал два экземпляра Amazon EC2. После этого я создал Elastic Load Balancer и зарегистрировал в нем два экземпляра.
Теперь я хотел бы знать, когда мы используем DNS-имя балансировщика нагрузки, какой экземпляр будет использовать балансировщик нагрузки?
Могу ли я выяснить, какой экземпляр в настоящее время используется Elastic Load Balancer?
Ответы (3)
Идея балансировки нагрузки заключается в распределении рабочей нагрузки между несколькими компьютерами или компьютерный кластер, сетевые соединения, центральные процессоры, диски или другие ресурсы [...].
Хотя существует множество мыслимых алгоритмов, общая цель состоит в том, чтобы достичь оптимального использования ресурсов, максимизировать пропускную способность, минимизировать время отклика и избежать перегрузки, что обычно подразумевает прозрачное распределение нагрузки между ресурсами с балансировкой нагрузки. Поэтому вы обычно не будете знать (и не должны знать), какой ресурс с балансировкой нагрузки обслуживает конкретный запрос.
Соответственно, Elastic Load Balancing (ELB) автоматически распределяет входящий трафик приложений между несколькими экземплярами Amazon EC2. эм>.
Как это делается конкретно, является довольно сложной темой, в основном из-за того, что документация по маршрутизации ELB не существует, поэтому нужно собрать некоторые части, чтобы сделать вывод - см. мой ответ на связанный вопрос Могут ли Elastic Load Balancer правильно распределять трафик между экземплярами разного размера для подробного анализа, включая все известные мне ссылки.
Что касается рассматриваемого вопроса, я думаю, что он сводится к несколько расплывчатому ответу команды AWS от 2009 года на Стратегия ELB:
ELB в общих чертах отслеживает, сколько запросов (или подключений в случае TCP) не выполнено в каждом экземпляре. Он не отслеживает использование ресурсов (таких как ЦП или память) в каждом экземпляре. В настоящее время ELB выполняет циклический поиск среди тех экземпляров, которые, по его мнению, имеют наименьшее количество невыполненных запросов. [выделено мной]
stf, вы не можете узнать, для какого сервера нагрузка распределяется через EBS, EBS внутренне позаботится о распределении запросов.
Конечно, вы можете выяснить, на какой сервер отправляется ваш запрос!
На каждом сервере вам понадобится что-то вроде файла health_check.html (можно назвать как угодно, кто-то предложил index.htm, но это плохая идея и это совсем другое обсуждение), чтобы балансировщик нагрузки мог вызвать его и определить, как долго потребовалось, чтобы получить ответ.
На сервере №1 поместите в файл health_check.html следующее: <HTML><BODY>1</BODY></HTML>
На сервере №2 поместите это в файл health_check.html: <HTML><BODY>2</BODY></HTML>
Теперь, когда вы переходите на www.YourDomain.com/health_check.html, вы будете точно знать, на каком сервере вы находитесь.
Очистите файлы cookie и повторно перейдите по тому же URL-адресу, чтобы увидеть, какой сервер вы получите следующим. Удачи разработчику облачных сервисов!