티스토리 뷰

공부

[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 작업으로 시간이 많이든다.




[참고]

http://mygumi.tistory.com/154

http://bcho.tistory.com/881

http://www.nextree.co.kr/p7292/

728x90

'공부' 카테고리의 다른 글

[JS] MobX?  (0) 2018.08.12
[Pattern] MVC / MVVM / MVP / MVW(작성중)  (0) 2018.08.12
[CS] Computer Science 기본 지식  (0) 2018.08.12
[JS] ES5 vs ES6  (0) 2018.08.12
[JS] Redux?  (0) 2018.08.12
댓글