MQTT( Message Queueing Telemetry Transport )는 메세지 발행-구독하는 방법으로 통신하는 메세지 기반의 송수신 프로토콜이다.
MQTT는 TCP/IP 프로토콜 위에서 동작하며, Wifi나 인터넷에 연결하여 통신한다.
MQTT 서버는 Facebook Messenger에서 채택하면서 유명해졌으며, 그 외 많은 기업들이 중계 시스템 개선을 위해 사용하고 있다.
최소한의 전력과 패킷량으로 통신하는 프로토콜로 제한된 통신 환경을 고려하여 디자인 되어서 IoT와 모바일 어플리케이션 등에 적합하다.
Topic 발행( 1 Topic - N Subscriber 가능 )
중계 역할, Topic과 구독, 발행을 총괄한다.
Mosquitto 등 다양한 프로그램이 있다.
구독자
Publisher에서 발행하는 데이터 Subscriber가 받고자 하는 데이터
'/'를 이용해 계층적으로 구성할 수 있는 특징을 가지고 있어 대량의 센서들을 효율적으로 관리할 수 있다.
ex) DepartmentStore/ AStore / Shirts
'+'를 이용해 단 한 개의 토픽을 임의의 토픽으로 대체할 수 있다. 아래는 백화점 내 모든 셔츠를 체크한다.
ex) DepartmentStore/ + / Shirts
'#'을 이용하여 2단계 이상의 하위 토픽을 와일드카드 기능으로 대체할 수 있다. 이 기능은 맨 마지막에만 사용 가능하며 백화점 내의 모든 가게의 모든 물건을 체크할 수 있다는 의미이다
ex) DepartmentStore/ #
MQTT는 3단계의 QoS(Quality of service)를 제공한다.