node.js 43

Node.JS와 Vert.x 비교

Node.js vs Vert.x 비교 간단하게 정리해본 Node.JS와 Vert.x의 장단점 비교,두 서버 모두 C10K 문제를 해결 하기 위한 Single Thread 기반의 고성능 비동기 서버이다.C10K 문제는 대용량 (10,000개이상의 동시 커넥션을)처리 하기 위한 문제로 전통적인 Tomcat등의 WAS에서는 이 문제를 해결할 수 없다 들어온 request는 무조건 큐잉이 되었다가 뒷단의 멀티 쓰레드에 의해서 작업이 처리되는데 이 멀티 쓰레드의 수 만큼만 동시 사용자를 처리할 수 있는 개념이다.반대로 이 두 서버들은 일단 Connection이 연결되면, 연결된 socket들을 물고 있다가, Single Thread의 Event Loop가 고속으로 돌면서, socket에 들어온 메세지들을 처리하고..

Single Threaded Model이라서 더 빠르다? No.!!

Single Threaded Model이라서 더 빠르다? No.!! Vert.x나 Node.JS와 같은 Single Threaded 모델의 서버들이 내세우는 장점이, Single Thread Model이기 때문에, Context Switching이 없고, 이로 인해서 성능이 더 빠르다. 라는 논리인데, 사실 DB나 File IO가 있을 경우, 뒷단의 Thread Pool에 request & call back 형식으로 처리를 하고 있기 때문에, 이 경우에는 Single Thread Model이 아니라 Multi Thread Model이 되고, 이 Thread Pool들의 Thread로 인한 Context Switching이 발생하게 된다. 이런 IO Call이 없는 경우 (Thread Pool로 작업을 보..

비동기 네트워크 서버 프레임웍 Vert.x 소개

비동기 네트워크 서버 프레임웍 Vert.x조대협 * 서문Vert.x는 NodeJS와 같은 비동기 소켓서버 프레임웍이다.Vert.x에 대한 이해를 돕기 위해서, Tomcat과 같은 WebApplication Server(이하 WAS)에 대해서 먼저 간단하게 짚고 넘어가자. Tomcat의 경우에는 HTTP request가 들어오면, request가 앞의 request Queue에 쌓이게 된다.쌓이게된 request들은 Thread Pool에 있는 Thread에게 하나씩 할당되어, request를 처리하고, 작업이 끝나면, request가 들어온 connection으로 response를 보낸후, 작업을 끝낸다. 작업이 끝난 Thread는 다시 Thread Pool로 들어간다.이런 구조에서, Tomcat이 순간..