How PayPal Beat the Thundering Herd Problem and Fixed Their Architecture
- PayPal은 Thundering Herd 문제를 해결하기 위해 지터를 도입하고 불필요한 마이크로서비스를 제거했습니다. ⛈️
- Thundering Herd 문제는 과도한 요청 재시도로 인해 시스템이 과부하되는 현상입니다. 💥
- 기존 PayPal 아키텍처는 분쟁 API, SQS, Active Job, 프로세서 서비스, 결제 프로세서로 구성되었습니다. 🔗
- 문제의 핵심 원인은 동기화된 재시도였으며, 이는 시스템에 과도한 부하를 유발했습니다. 🔄
- 해결책은 재시도 시 무작위 지연(지터)을 추가하여 재시도 시점을 분산시키는 것이었습니다. ⏱️
- 지터는 재시도 시도를 시간 창 내에 분산시켜 시스템 부하를 줄이는 데 효과적입니다. 흩뿌려! 🌈
- PayPal은 불필요한 프로세서 서비스를 제거하여 아키텍처를 단순화했습니다. ✂️
- 워커 노드가 직접 결제 프로세서에 작업을 제출하도록 변경되었습니다. 👷
- 핵심 교훈은 모든 것에 마이크로서비스를 사용할 필요가 없다는 것입니다. 🚫
- 단순한 시스템이 확장하기 더 쉽습니다. 🚀
- 지터를 추가하여 Thundering Herd 문제를 해결하고, 불필요한 마이크로서비스를 제거하여 시스템을 단순화하는 것이 중요합니다. ✅