공부
[Server] NodeJS Server vs Java Server
승가비
2018. 8. 12. 16:33
728x90
[NodeJS Server]
- Single thread Event loop <- request <- Event Queue
- Non I/O blocking: Event loop -> response
- I/O blocking: Event Loop -> Internal thread pool
- Internal thread pool -> async callback -> Event loop -> response
- 사용하는 스레드가 적어서, 메모리를 적게 쓴다.
- 요청이 Event loop에 차곡차곡 담기므로, 많은 사용자가 생겨도 대처하기 쉽다.
- Blocking I/O 중에도 계속 새로운 작업이 가능하다.
- CPU 작업이 많은 경우 적절하지 않다.
[Java Server]
- Multi thread pool
- Non I/O blocking: thread -> response
- I/O blocking: thread -> response
- 사용하는 스레드가 많아서, 메모리를 많이 차지한다.
- 모든 스레드가 작업 중이면, 다른 작업을 진행할 수 없다.
- 스레드는 하나의 작업을 처리할 때까지 다른 작업을 할 수 없으므로, 많은 사용자가 몰렸을때, 대응이 어렵다.
- Blocking I/O 작업으로 시간이 많이든다.
[참고]
728x90