서론

두 모델의 차이 Blocking방식(Thread Per Request)과 Non-Blocking(EventLoop Model)방식이다.

Untitled


Spring mvc, Thread per request 모델

Spring mvc는 Blocking 방식으로 처리된다.

ex)) DB와 커넥션을 하는 경우(현재 NonBlocking 방식을 지원하는 DB는 몇개 없음)

단점

위와 같은 문제들 때문에 **적은 수의 스레드로 많은 요청을 처리**하기 위한 Reactive Programming 등장


Spring Webflux, Event Loop 모델

Spring Webflux는 Non-Blocking 방식으로 처리된다.

그래서 비동기 프로그래밍 모델에서 사용되는 실행 모델이다.

작동 방식

  1. 이벤트 루프가 시작