vertx 8

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에 들어온 메세지들을 처리하고..

비동기 네트워크 서버 프레임웍 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이 순간..

Vert.x transport layer security

Vert.x를 보면서, HTTP단이야 HTTPS로 Security 보장이 된다지만, TCP/IP Server는 어떻게 하는가가 의문이었는데, 이부분도 이미 다 준비되어 있다. Configuration 몇줄 만으로 TLS가 지원 된다. http://vertx.io/core_manual_java.html#ssl-serversNetServer server = vertx.createNetServer() .setSSL(true) .setKeyStorePath("/path/to/your/keystore/server-keystore.jks") .setKeyStorePassword("password"); 아무리 봐도 잘만들었어...

요 몇일 Vert.x를 분석해보고.. (메모)

요즘 대용량 Concurrent 처리가 가능한 프레임웍을 보는중 Vert.x를 보고 있는데.한마디로 정말 예술적으로 잘 만들었다.MINA를 기반으로 하고 있기 때문에 대용량, 고속 네트워크 처리에 능함Python,java,js,scala,groovy등 다양한 언어를 지원프레임웍 형식으로 매우 직관적이며 코딩양이 매우 적음instance 개념을 도입하여 isolation 을 해줌으로써 multi thread 처리가 필요 없으면서, 같은 코드를 여러개의 instance에 로딩해서 각기 다른 thread에서 수행하게 해서 마치 multi thread와 유사한 성능을 냄. - 이런 구조는 Tuxedo의 Service 개념과 유사함. 이 구조 때문에, multi core machine에서는 node.js보다 성능..

Vertx 개념 잡기 (instance,thread,classloader,standard verticle,worker verticle)

Vertx 개념 잡기 (instance,thread,classloader,standard verticle,worker verticle) l Verticle :Vert.x의 하나의 애플리케이션 일종의 Vertx 판 Servlet이라고 이해하면 빠름Ÿ 기본 특성 : 독립된 Class Loader에서 독립된 Oject로 존재함 > Multi threading 문제가 발생하지 않음.Ÿ ELP (Event Loop) Verticle : 일반 Verticle. 항상 같은 Thread에서만 돈다. 같은 Verticle은 여러개의 Verticle instance로 존재할 수 있으며, 동시에 각각의 Thread에서 수행하는 것이 가능함.Ÿ Worker Verticle – ( Q에서 subscribe 받아서 뒤에서 비동기..

Vert.x Worker Concept

Worker에 대한 개념 설명[개인 공부 노트이기 때문에 설명이 매우 어렵습니다. 나중에 다 이해하면 다시 개념 정리해서 올리도록 하겠습니다.]관련 코드 : https://github.com/bwcho75/vertx_study/tree/master/worker_sample 앞단의 Network 핸들러 (TCP,HTTP)등에서 request를 읽은 후에, Event Bus 를 통해서 Backend의 Worker로 보낸다. 이 개념은 JMS나 MQ등을 이용해서 뒷단에서 Message Consumer 들이 처리하는 Q 기반의 Async 기반의 개념과 매우 유사하다. 그럼 Vert.x에서 차이점은 이 Worker가 작업을 처리한 후에, 작업을 끝내면 작업 완료 메시지가 Message Producer (즉 Net..

Vert.x Note - Verticle & instance and Thread

Vert.x 기본 개념 잡기 1. Verticle- The package of coe that Vert.x executes(Java,JavaScript,Python,Groovy 등 여러가지 언어로 작성될 수 있음)- Verticle은 기본적으로 Non Blocking으로 작동함- Blocking으로 작동하는 Verticle은 Worker Verticle을 사용함. 2. Module- Set of Verticla- Application 은 1개 이상의 Module로 구성되고, Module은 1개 이상의 Verticle로 구성됨 Vertx의 실행단위는 Verticle 또는 Module 3. Vert.x instance- Verticle은 instance 내에서 동작하는데, 하나의 instance 내에서는 여..

Vert.x 노트

1. vert.x를 다운받아서 설치2. Python을 사용하기 위해서 Jython 을 설치- Jython 인스톨 방법은% java -jar jython_installer-2.5.2.jar 환경변수에 JYTHON_HOME을 Jython 인스톨 디렉토리로 설정 환경 준비 완료 3. 간단한 Python 테스트 ※ Company Proxy로 인하여, Vertx 모듈이 설치가 되지 않는 경우. 방법 1. Vertx는 module (라이브러리)를 외부 리포지토리로 부터 읽어와서 자동 설치 하는데,회사 proxy 등을 사용할 경우 설치가 안되며, 이를 회피하기 위한 방법도 없다. 방법은 간단한 웹서버를 로컬에 띄운후, mod.zip 파일을 그 디렉토리에 넣어야 한다.이때 주의할점은 vertx는 repository의 ..