Зеркалирование трафика с помощью Nginx (для повышения доступности и уменьшения задержки)

Зеркалирование трафика с помощью Nginx (для повышения доступности и уменьшения задержки)

Мне нужно дублировать/зеркалировать трафик, поступающий на мой сервер.

Я имею в виду, что у меня есть N внутренних серверов A1 A2 ... An (n>=2) и nginx в качестве обратного прокси-сервера и балансировщика нагрузки.

Весь трафик, поступающий на Nginx, перенаправляется как на Ax, так и на Ay(x!=y) впараллельныйЕсли один из серверов вышел из строя (истекло время ожидания или ошибка 5xx), то ответ другого сервера можно использовать немедленно и вернуть результат клиенту.

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

Мне нужно ответить клиенту в течение 30 мс, если задать retries=1, то тайм-аут должен быть установлен на 15 мс (трудно архивировать), поэтому зеркалирование трафика может быть решением.

Является ли это возможным?

решение1

Ваш вопрос почти имеет ответ сам по себе в целом. То, что вы описываете, это просто балансировка нагрузки с проверками работоспособности. Это определенно возможно с nginx, и такая настройка описана в их документации:http://nginx.org/en/docs/http/load_balancing.html

Связанный контент