개요
ØMQ - 가이드 - 분산 어플리케이션 환경에서 지능형 전송레이어로써 ØMQ를 어떻게 사용하는지 설명합니다. By Pieter Hintjens
ØMQ 참조 설명서 - ØMQ API를 설명합니다. By Martin Sustrik and Martin Lucina
예제 코드
이것은 두개의 다른 원격 Publishers에서 데이타를 수집하여 로컬 Subscribers에게 전문을 보내는 필터를 보여줍니다.
import zmq
import time
context = zmq.Context()
subscriber = context.socket (zmq.SUB)
subscriber.connect ("tcp://192.168.55.112:5556")
subscriber.connect ("tcp://192.168.55.201:7721")
subscriber.setsockopt (zmq.SUBSCRIBE, "NASDAQ")
publisher = context.socket (zmq.PUB)
publisher.bind ("ipc://nasdaq-feed")
while True:
message = subscriber.recv()
publisher.send (message)
소개
ZeroMQ를 시작하는 가장 좋은 방법은 몇가지 실습 예제를 통하는 것입니다. 단연 새로운 개념이 아니며, 쉽게 구현이 가능합니다.
"ØMQ에서 비동기라는 것은 물리적 연결 설정, 분리, 재연결과 같은 자체 기능을 통해 효과적으로 해당 사용자에게 전달된다는 것을 의미합니다. 메시지 수신이 가용하지 않을 때는 큐잉될 수 있습니다."
"특별한 상황을 제외하고는, ZeroMQ를 가지고 시간을 보내다 보면 원시적인 TCP나 UDP 소켓을 사용해야만 된다는 생각은 없어진다."
Martin Lucina and Martin Sustrik 글:
"ØMQ는 메시징 시스템이며, 다른 접근방법으로 했을 경우 발생되는 이슈들을 없애 준다. 새로운 API나 복잡한 Wire프로토콜을 사용하는 것보다 ØMQ는 배우기 쉽고 한두시간에 네트워크 프로그램을 마스터 할 수 있게 한다. 성능은 소켓과 동일하거나 종종 초과하기도 한다."
"ZeroMQ는 많은 노력없이도 복잡한 통신 시스템을 설계 할 수 있도록하는 메시징 라이브러리입니다."
"ZeroMQ는 소켓과 같이 많은 API를 사용하고, 소켓과 같게 느껴집니다. 또한 사용자가 원하는 다양한 메시징 패턴을 제공한다. zmq_socket를 사용하는 것 만으로 multicast, request/reply 등 많은 패턴을 제공합니다."
PT비디오 자료소개
영국 PHP 컨퍼런스에서 Ian Barber씨가 "ZeroMQ가 답이다"라는 제목으로 설명한 영상입니다.
Pieter Hintjens은 0MQ가 어떻게 대규모 분산 어플리케이션을 구축하는데 발생되는 문제들을 풀어 줄것인지를 설명합니다.
Backgrounders 및 백서
- Pieter Hintjens and Martin Sustrik는 어떻게 0MQ가 대형 multicore 어플리케이션을 구축하는데 도움을 줄 수 있는지를 설명하고 있다. (PDF 8페이지 참고)
- Martin Sustrik가 broker-based와 brokerless 메시징 방식의 차이점을 설명하고 있다.
- Pieter Hintjens는 edge-to-edge방식의 신뢰성이 broker-based방식의 신뢰성보다 더 확장가능하고 강력한지를 설명하고 있다.