본문 바로가기

서버운영 (TA, ADMIN)/네트워크

[오픈소스] RabbitMQ, Mosquitto MQTT 브로커

MQTT채팅서버에 이용되는 경량 프로토콜 이다.

프로토콜 패킷 자체가 굉장히 심플하기 때문에 짧은 메시지 전송에 매우 유리하다.
IoT 등 Private Push 영역에서 사용된다.

MQTT 브로커가 실제 전송을 담당하고
Publishing(발행), Subscription(구독) 개념으로 클라이언트 간 패킷 교환이 이루어진다.

브로커가 실제 패킷 전송을 담당하는데 MQTT 브로커에는 다양한 오픈소스 프로젝트가 존재한다.

내가 프로젝트에서 접해본 것은 RabbitMQ, Mosquitto이다. 

MQTT 개념을 학습하기 좋은 사이트
http://www.joinc.co.kr/w/man/12/MQTT/Tutorial

Mosquitto
Mosquitto는 사내 Push 솔루션에서 사용했던 오픈소스로 알고있는데 원본 프로젝트가 C++기반이고 Java는 오픈소스 개발자가 C++언어를 Java로 변환하여 개발한 Github 프로젝트가 전부라 상용에 실제 적용하기에는 위험이 있다. 레퍼런스 문서도 없다.. 영어로 된 문서만 있기 때문에..

RabbitMQ 공부 책
내가 기본 예제를 통해 학습할때 잠깐 들여다봤던 책은 에이콘시리즈 RabbitMQ 따라잡기이다.
스프링 부트로 어드민 페이지 띄우고 sender 구현까지는 실행해봤는데. Pub,Sub 구현까지 하려다가 회사일이 바빠 끝까지 하지는 못했다. 에이콘시리즈 서적이 개념상세설명보다는 레퍼런스 예제실습에 치중한 매뉴얼서적이기때문에 간단하게 RabbitMQ 돌아가는 예제 학습에는 도움이 된다.