본 글은 2016년 3월 30일 17시 34분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다.
HTTP에 Apache와 NginX, IIS, Tomcat이 있듯이 MQTT에도 Mosquitto와 HiveMQ, WebSphere MQ가 있다. Github에 있는 MQTT 프로젝트의 위키에 가면 MQTT 목록과 지원 되는 기능을 한 눈에 볼 수 있는 표가 있다. 아래가 그 표인데 표에 나타난 모든 기능을 지원하는 서버가 대다수 상용인 점을 고려하면 저비용에 개발하기에는 아직은 시기상조이지 않을까 생각이 든다.
※ 참고 : MQTT에는 브로커(Broker)라는 개념이 있는데 서버-클라이언트 모델의 서버에 해당한다. 현재 MQTT 관련 자료들을 살펴 보면 브로커의 개념을 브로커와 서버라는 두 가지 명칭으로 혼재하서 사용 중인 것을 볼 수 있다.
MQTT 지원 서버 정보
Mosquitto
모스키토는 이클립스 IoT 프로젝트에 포함되어 있는 오픈소스 프로젝트로써 C와 C++, Python로 작성되었다. 무료로 사용가능하다.
라이센스 : Eclipse Distribution License 1.0 (BSD), Eclipse Public License 1.0
RSMB(Really Small Message Broker)
IBM에 의해 제작되었으며 C언어 기반이다. 중소규모의 임베디드 시스템에서 사용하기에 알맞도록 제작되었다. 무료인지 유료인지 확인이 필요하다.
Websphere MQ
IBM에 의해 제작되었으며 유료다. 90일 체험판 버전이 있다. 서버프로그램은 x64 리눅스와 32/64비트 윈도우에서 작동이 가능하다. 클라이언트 프로그램은 C와 JAVA로 제작되있으며 C 클라이언트는 x64/ARM 리눅스, 윈도우에서 작동 가능하다. 자바클라이언트는 특정버전의 JSE, JME에서 작동한다.
HiveMQ
유료다. 확장성과 엔터프라이즈급 보안에 중점을 두고 있다. 연결될 장치의 수에 따라서 비용이 달라진다.
ActiveMQ
아파치 2.0 라이센스 기반으로 제작되어 있다.
Apache Apollo
아파치재단의 프로젝트이다. 무료이다. ActiveMQ를 기초로 하여 만들어졌으나 쓰레딩과 메시지 발송 아키텍쳐에서 매우 다르다고 한다. MQTT 외에도 STOMP, AMQP, OpenWire 등 여러 프로토콜을 지원하는 것이 특징이다.
RabbitMQ
오픈소스이며 기술지원을 유료로 지원한다. 원래 AMQP 프로토콜을 지원하는 브로커이나 MQTT 플러그인을 통해 MQTT도 지원한다.
Nirvana Messaging
개인이 만드는 브로커 프로그램인것 같다.
Solace
무료이다. MQTT, JMS, Rest 등을 이용한 API를 제공한다. 최대한 많은 커넥션과 높은 쓰루풋을 낸다고 소개되어 있다.
이 외에도 표에 여러개가 있으나 더 이상의 조사 및 정리는 의미가 없을 것 같다. 무료 프로그램을 쓴다면 이클립스나 아파치에서 밀고 있는 프로그램을 쓰는 것이 좋을 것 같으며 상용 프로그램을 사용하고 싶은 경우 국내에 기술지원을 받을 수 있는지를 검토해볼 필요가 있다.
'컴퓨터 네트워크 프로토콜 > MQTT(Message Queueing Telemetry Transpor' 카테고리의 다른 글
MQTT로 개발하는 것이 무조건 좋은 것인가? (0) | 2020.10.14 |
---|---|
MQTT(Message Queuing Telemetry Transport, 엠큐티티) 개요 (0) | 2020.10.13 |
댓글