2014/02 12

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

14회 JCO 컨퍼런스 발표합니다.

광고 들어갑니다. 내일 JCO에서 발표를 할 예정입니다.http://www.jcoconference.co.kr/agenda.asp 2시 20분 부터이구요 제목은 "조대협의 소프트웨어 개발" 입니다만. 주로 예전 대비 아키텍쳐 변화, JIRA와 스크럼을 이용한 엔드투엔드 개발 및 소프트웨어 개발팀의 구조에 대해서, TEDx 처럼 편하게 해보려고 합니다. 지금까지 여러 프로젝트와 해외팀 관리등을 해오면서 겪어온 경험들을 공유하고자 합니다. 내일은 Atlassian에서 협찬 받은 스포츠 물병과 티셔츠 (레어 아이템)을 Q&A 시간에 나눠 드릴 예정입니다. 많은 참석 부탁드립니다. :) 많이 공유해주세요.

CouchDB 강의 내용 정리

CouchDB Overview 어제 SSAG 에서 정명훈 이사가 강의한 CouchDB에 대한 내용 정리 CouchDB 일반 특징CouchDB Apache 프로젝트로 MongoDB와 같은 Document DB의 형태를 띄며, NOSQL CAP이론중 AP 에 해당 한다. (장애에 매우 강하다.) 단 Consistency는 Eventual Consistency를 제공한다. (버전으로 하는 방식), Eventual Consistency 모델이기 때문에 Locking을 사용하지 않는다. (Optimistic Lock) 유사 프로젝트유사 프로젝트로 CouchBase와 BigCouch, Cloudant등이 있다.CouchBase는 memcached와 CouchDB를 합쳐놓은 제품으로, 앞단에 캐쉬가 있어서 성능이 매..

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로 작업을 보..

MQTT 서버 간단 공부 노트

MQTT 스터디 노트스터디 노트- IBM에서 만듬- FB 메신져가 이걸 사용. 국내 통신사 PUSH 서버도 이걸 사용함- 일단 FB가 쓰니, 동남아권 Telco에서 패킷 걸리는 문제는 없을듯- Qos 0,1,2로 해서, 2 의 경우 message delivery를 gurantee함- 저전력!! 이게 중요.- XMPP에 비해서 훨씬 경량. (XMPP는 XML, MQTT는 byte로 보내는데, 2바이트부터 시작)- MQTT 서버를 라즈베리와 같은 임베디드 서버에도 넣을 수 있음. IOT용!! 즉 Things가 서버가 될 수 있다!!- 대부분 사용자 인증만 제공 (user id/password 방식) 이것도 대부분 서버들이 파일에 저장한다. (IDM이나 KEY 시스템과 연계 필요)- TLS/SSL은 지원. X..

간단한 HazelCast 테스트

EmbeddedServer 애플리케이션애플리케이션이 로딩될때, HazelCast를 같은 JVM에서 수행 시킴1. HazelCast를 다운로드 받은 후, 압축을 푼다. (www.hazelcast.org)2. 서버 애플리케이션 코드 작성package terry.hazelcast; import com.hazelcast.core.*;import com.hazelcast.config.*;import java.util.Map;import java.util.Queue; public class GettingStarted { public static void main(String[] args) { Config cfg = new Config(); HazelcastInstance instance = Hazelcast.new..

비동기 네트워크 서버 프레임웍 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"); 아무리 봐도 잘만들었어...