
Сталкивался ли кто-нибудь с дублированием запросов, отправленных на несколько экземпляров EC2 с использованием балансировщика нагрузки приложений?
У нас есть API на EC2, поддерживаемый ALB, и недавно мы заметили, что некоторые запросы отправляются нескольким экземплярам, что вызывает проблему, поскольку определенные действия, такие как платежи, происходят более одного раза.
API построено вокруг .net core, но не думаю, что это важно. Проблема началась недавно и не происходит постоянно.
Кто-нибудь видел что-то подобное. Я видел несколько старых выпусков, примерно 2011/2012 годов, но ничего более позднего.
решение1
Давать возможностьЖурналы доступа ALB(они доставляются в S3) и анализируют их.
Скорее всего, вы обнаружите, что на самом деле это ваши клиенты отправляют запрос несколько раз - либо через взаимодействие с пользователем (например, пользователь перезагружает страницу, ожидая обработки платежа), либо из-за вашего клиентского приложения (JS истекает время ожидания ответа и повторно отправляет запрос). Журналы покажут вам это.
Надеюсь, это поможет :)
решение2
Мы также наблюдали то же самое с классическим ELB (в отличие от вашего ALB). У нас есть доказательства того, что иногда (десяток раз в день в среде с интенсивным трафиком) 2 экземпляра получают один и тот же запрос, итолько одиниз этих случаев есть в журнале доступа ELB.
Кроме того, согласно нашим журналам, это происходит уже как минимум 3 месяца (а может быть, и вечно), но ситуация могла ухудшиться с середины июля.