1. MQTT(Message Queuing Telemetry Transport)란?
- 주로 M2M, IoT 응용 프로그램에 사용되는 경량 메시지 전송 프로토콜이다.
- 네트워크 대역폭이 제한되거나 IoT, 대규모 트래픽 전송을 위해 만들어진 프로토콜이다.
- TCP/IP 프로토콜 위에서 동작하지만 매우 가벼우며, 많은 통신 제약들을 해결해준다.
2. MQTT 특징
- 연결지향적
- MQTT 브러커와 클라이언트는 TCP/IP 소켓 연결 후 명시적으로 연결을 끊거나 네트워크 사정에 의해 연결이 끊어질 때까지 상태를 유지
- Topic 기반 메시징
- 데이터는 Topic으로 구분된다.
- 클라이언트는 관심 있는 주제를 구독하고, 브로커는 클라이언트들에게 메시지를 발행한다.
- 브로커를 통한 통신
- 발행-구독을 통한 통신은 오로지 브로커를 통해서만 통신할 수 있으며, 개설된 Topic 메시지를 발행하면 해당 Topic을 구독하는 클라이언트들에게 메시지를 발행할 수 있다.
- QoS(Quality of Service) 레벨 지원(품질을 위함)
- Level 0: 1회만 전송 전송
- Topic을 통해 메시지를 전송할 뿐 보장은 하지 않음.
- Level 1: 최소 1회 이상 전송
- 최소 한번이상 전달되며 Publishr에게 PUBACK을 전달하여 성공 여부를 알린다.
- Publishr가 PUBACK을 성공적으로 받지 못하면 Subscriber에게 중복메시지를 보내는 경우가 생긴다.
- Level 2: 구독하는 클라이언트가 요구된 메시지를 정확히 한 번 수신할 수 있도록 보장한다.
- 높은 품질을 보장하지만 부하가 크다.
- Level 0: 1회만 전송 전송
'Back-end > MQTT' 카테고리의 다른 글
[Spring Boot] Spring Integration MQTT 예제 (0) | 2023.09.24 |
---|