R&D/클라우드

Zero MQ

sunshout 2012. 3. 27. 19:37

[정리-공개용] Zero MQ_Ver1.0.pdf


1. Zero MQ

1.1 Zero MQ 개요

복잡한 통신 시스템을 설계할 수 있는 임베디드 네트워크 라이브러리

간편한 메시징 소켓 라이브러리

클러스터 및 슈퍼 컴퓨팅 환경에서 TCP보다 성능 우수

확장 멀티코어 메시지 전달 어플리케이션을 위한 비동기 I/O

다양한 전송수단(in-process, inter-process, TCP, and multicast)

다양한 연결패턴(fan-in/out, pub-sub, task distribution, and request-reply)

다양한 프로그래밍 언어 지원(C, C++, Java, .NET, Python, Objective-C 등)

다양한 운영체제 지원(Linux, Windows, OS X 등)

오픈소스 LGPLv3


주요 적용 업무

고성능/대용량 처리(Trading 시스템, Big Data처리, 대량 배치처리, 실시간 Data 동기화)

모바일폰과 같은 작은 메모리, 고성능 연계업무

다양한 플랫폼 및 솔루션에 연계 필요


1.2 구현 방법

전송 수단 선택

종류 기능

INPROC 프로세스 내에서 스레드 간의 통신 모델

IPC 프로세스 간의 통신 모델

TCP 네트워크 기반의 전송수단

Multicast PGM을 사용한 신뢰 가능한 멀티캐스트 전송

TCP는 보통 가장 좋은 성능과 안정성을 제공

그러나 시스템 내에서의 통신이라면 latency를 줄일 수 있는 INPORC나 IPC를 사용 가능

전송 구조/장치 선택

전송수단을 결정하면, 구성요소간의 연결방법을 고민해야 함

종류 기능

QUEUE request-reply 메시징 패턴을 위한 전송 장치

 . 요청에 대한 응답처리, 양방향(2way),로드밸런싱,안정성

FORWARDER pub-sub 메시징 패턴을 위한 전송 장치

. 한번 발송으로 여러 수진자가 메시지를 처리, 데이터 분산 패턴

STREAMER pipelined 메시징 패턴을 위한 전송 장치

. 파이프라인에서 각 노드에 데이터를 분산처리, 병렬 작업 분산 및 수집 패턴(Fan-out/Fan-in)