2012-05-20 3 views
2

Google сообщает в Addressing Backends chapter, что без таргетинга на экземпляр по номеру App Engine выбирает первый доступный экземпляр бэкэнд. Это заставляет меня задуматься - что это за «первый доступный экземпляр»? Это экземпляр # 1, или он выбран другими способами?Адресация бэкендов

+0

Какая разница? «Доступно» - это экземпляр, который в настоящее время не обслуживает запрос/выполнение вашего кода. Все они эквивалентны (в пределах одной конфигурации бэкэнд) – alex

+0

Это имеет значение, см. Отличный ответ ниже. Мне просто нужно было убедиться, какой способ выбрать этот «доступный» экземпляр, поскольку мне нужно будет написать код балансировки нагрузки самостоятельно, если он будет вести себя по-другому. – themarketka

+0

Шахта была риторическим вопросом. – alex

ответ

3

Точное поведение этого зависит от того, являются ли ваши экземпляры динамическими или резидентными.

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

Для экземпляров-резидентов запрос отправляется на наименее загруженный экземпляр бэкэнд.

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

+0

Это именно то, что я хотел знать. Поэтому мне не нужно писать какой-либо код балансировки нагрузки самостоятельно (для динамических частных бэкэндов), который в любом случае не будет на 100% надежным или простым в реализации. Мне придется искать настройки очередей, но я ничего не помню. – themarketka

Смежные вопросы