❗MQTT
MQTT(Message Queuing Telemetry Transport)는 경량 메시지 프로토콜로, 네트워크 대역폭이 제한적이거나 연결 상태가 불안정한 환경에서 장치 간 통신을 효율적으로 수행하기 위해 설계되었다. M2M(Machine-to-Machine)를 기반으로 주로 IoT(사물 인터넷)의 개방형 프로토콜로 사용된다.
애플리케이션 Layer 프로토콜로 일반적인 HTTP와 같은 프로토콜과 달리 클라이언트-서버 모델이 아니라 Broker, Publisher, Subscriber 모델로 이루어진다.
❗MQTT 아키텍처
- 발행자(Publisher):
- 메시지를 생성하는 주체이다.
- 발행자는 자신이 발행한 메시지를 특정 "주제(Topic)"에 발행한다.
- 브로커(Broker):
- 발행자가 보내는 모든 메시지를 수신하고, 이를 해당 주제를 구독한 구독자에게 전달하는 역할을 한다.
- 모든 통신은 브로커를 통해 이루어지므로, 발행자와 구독자가 서로를 알 필요가 없으며 브로커는 메시지 라우팅을 담당합니다.
- 구독자(Subscriber):
- 구독자는 주제를 구독하고 해당 주제에 새 메시지가 도착할 때마다 이를 수신한다.
- 구독자는 다수의 주제를 구독할 수 있고, 하나의 주제에 여러 구독자가 있을 수 있다
MQTT 아키텍처에서는 발행자와 구독자가 직접 통신하지 않고, 브로커가 중간에서 메시지 전달을 관리하므로, 시스템을 더욱 유연해 질 수 있다.
728x90
반응형
'🔻DevOps > Networking' 카테고리의 다른 글
[ngrok] ngrok 개념 및 사용법 (0) | 2024.08.18 |
---|---|
[MQTT] EC2와 윈도우 기반 MQTT 통신 구현 (0) | 2024.08.15 |