ZeroMQ(Zero Message Queue, 줄여서 0MQ 또는 ZMQ)는 고성능의 분산 메시징 라이브러리로, 소프트웨어 시스템 간에 통신이 필요한 경우 사용한다. ZeroMQ는 C++로 구현되었으며, 다양한 프로그래밍 언어로 바인딩되어 사용할 수 있다.
1. 소켓 프로그래밍 보완 : ZeroMQ는 TCP, in - process(IPC), 및 다중캐스트 소켓을 포함한 다양한 전송레이어를 지원하여 기존의 소켓 프로그래밍을 향상시킨다.
2. 메시지 패턴 및 스케일링 : ZeroMQ는 가장 일반적인 메시지 패턴(Pub-Sub, Request-Reply, Push-Pull, Pair 등)을 제공하며 시스템이 확장 가능하고 유지 관리하기 쉽도록 도와준다.
3. 비동이 I/O 모델 : ZeroMQ는 높은 처리량과 낮은 지연시간을 목표로 하는 어플리케이션에 적합한 비동기 I/O모델을 제공한다. 일반적으로 이벤트 기반의 구조로 작성되어 여러 스레드, 프로세스 및 노드간의 동시처리를 지원한다.
4. 큐잉 및 안정성 : ZeroMQ는 지연된 메시지 전달을 위한 내부 버퍼를 제공한다. 이로 인해 전송 전용 큐 내에서 임시 실패를 처리하며 상대적으로 높은 데이터 통신 안정성을 보장한다.
5. 운영 체제 및 프로그래밍 언어와 호환 : ZeorMQ는 크로스 플랫폼 지원을 제공하며 대부분의 주요 운영 체제와 프로그래밍 언어와 상호 운용이 가능하다.
결론적으로, 소프트웨어 시스템 간의 통신 및 상호 작용을 쉽게 구축하고 확장할 수 있도록 도와주는 매우 유연하고 강력한 메시징 라이브러리다. 간단한 요구 사항부터 복잡한 분산 시스템에 이르기까지 다양한 시나리오에서 사용할 수 있다.
ZeroMG 홈페이지
https://zeromq.org/
ZeroMG 깃허브
https://github.com/zeromq
'기타' 카테고리의 다른 글
[TIP] Github 코드 간단하게 VS Code로 보는 법 (0) | 2023.08.10 |
---|---|
[리눅스] g++ 로 파일 실행하기 (0) | 2023.08.04 |
[리눅스] find 명령어와 sed로 상대경로 절대경로로 바꿔보기 (0) | 2023.08.02 |
[리눅스] 명령어1(ls 명령어) - 우툰투 정리 (0) | 2023.07.28 |
리눅스 터미널 명령어 정리 (2) | 2023.01.17 |