Если балансировщик нагрузки пингует мертвый сервер, что происходит с предыдущими запросами? Как мы можем избежать потери запросов, отправленных на мертвый сервер? - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь написать свой собственный веб-сервер (например, NGINX или Apache) в качестве учебного упражнения. Он может работать как прямой и обратный прокси, и теперь я хочу добавить к нему некоторую логику балансировки нагрузки.

Таким образом, балансировщик нагрузки распределяет запросы по массиву серверов, а когда сервер умирает, он перенаправляет запросы с мертвого сервера на действующие.

Чтобы проверить работоспособность сервера, мы обычно проверяем его и помечаем как мертвые, если не можем подключиться. (Поправьте меня, если это не так).

Это означает, что существует задержка между сервером , умирающим , и нами , выясняющими о его смерти. Вначале мы перенаправили запросы на мертвый сервер. Что происходит с ними? Как мы их получаем? (Получаем ли мы их вообще или просто делаем тайм-аут и надеемся, что клиент повторяет попытку?)

Если сервер может обмениваться данными с балансировщиком нагрузки (то есть уведомлять при запуске, уведомлять при остановке), этого можно избежать, но как мы можем избежать непредвиденных сбоев? Что такое «канонический» способ проверки здоровья?

Спасибо за ваши мысли.

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