Мне нужно дублировать/зеркалировать трафик, поступающий на мой сервер.
Я имею в виду, что у меня есть 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