요즘 대용량 Concurrent 처리가 가능한 프레임웍을 보는중 Vert.x를 보고 있는데.
한마디로 정말 예술적으로 잘 만들었다.
- MINA를 기반으로 하고 있기 때문에 대용량, 고속 네트워크 처리에 능함
- Python,java,js,scala,groovy등 다양한 언어를 지원
- 프레임웍 형식으로 매우 직관적이며 코딩양이 매우 적음
- instance 개념을 도입하여 isolation 을 해줌으로써 multi thread 처리가 필요 없으면서, 같은 코드를 여러개의 instance에 로딩해서 각기 다른 thread에서 수행하게 해서 마치 multi thread와 유사한 성능을 냄. - 이런 구조는 Tuxedo의 Service 개념과 유사함. 이 구조 때문에, multi core machine에서는 node.js보다 성능이 더 나옴.
- Hazelcast를 이용하여, instance나 node간의 상태 정보 공유가 가능함? --> 문서에는 안된다고 나옴 확인 필요!! 왜안되지? IMDB 가 뒤에 붙었는데?? 이해 안됨.
http://vertx.io/core_manual_java.html#shared-data
Sometimes it makes sense to allow different verticles instances to share data in a safe way. Vert.x allows simple
java.util.concurrent.ConcurrentMap
andjava.util.Set
data structures to be shared between verticles.There is a caveat: To prevent issues due to mutable data, Vert.x only allows simple immutable types such as number, boolean and string or Buffer to be used in shared data. With a Buffer, it is automatically copied when retrieved from the shared data, so different verticle instances never see the same object instance.
Currently data can only be shared between verticles in the same Vert.x instance. In later versions of Vert.x we aim to extend this to allow data to be shared by all Vert.x instances in the cluster.
- worker instance를 이용한 비동기 처리가 가능함
- 아직 많이 활성화 되지 않아서 관련 자료 찾기가 어려움
- groups.google.com이 활성화 되어 있음
- Tuxedo의 Service = instance, BBL = Hazelcast와 개념이 유사함
- Single Thread 기반인데도, Stream 기능인지. 파일 업로드 처리 (Long tx)가 가능함.. (이건 더 봐야 될거 같고)
'클라우드 컴퓨팅 & NoSQL > Vert.x & Node.js' 카테고리의 다른 글
비동기 네트워크 서버 프레임웍 Vert.x 소개 (15) | 2014.02.04 |
---|---|
Vert.x transport layer security (0) | 2014.02.03 |
Vertx 개념 잡기 (instance,thread,classloader,standard verticle,worker verticle) (0) | 2014.02.03 |
Vert.x Worker Concept (0) | 2014.01.28 |
Vert.x Note - Verticle & instance and Thread (0) | 2014.01.25 |