타임아웃


외부 연동에서 가장 중요한 설정 중 하나는 타임아웃이다.

예시 상황

image.png

  1. A 서비스에 아무 요청이 없는 상태에서, 사용자 100명이 동시에 A 서비스에 요청을 보낸다.
  2. 톰캣은 200개의 요청을 처리할 수 있으므로, A 서비스는 100개 요청을 처리하기 시작한다.
  3. 해당 요청은 모두 B 서비스를 호출하는데, B 서비스가 응답을 하지 못하고 있다.
  4. A 서비스의 100개 스레드는 응답을 기다리며 모두 대기 상태가 된다.
  5. 10초 후, 또 다른 100명이 A 서비스에 요청을 보내고, 총 200개의 요청이 동시에 처리되며 모두 B 서비스의 응답을 기다린다.
  6. 10초 후, 새로운 100명이 요청을 보내지만, 기존 200개 스레드는 응답 대기 중이므로 새로 들어온 요청은 처리가 되지 않는다.