728x90
반응형
MQTT ( Message Queueing Telemetry Transport )
* 자세한 설명 생략
▷ MQTT 란?
- IoT와 같이 제한되거나 대규모 트래픽 전송을 위해 만들어진 발행/구독 기반의 메시징 프로토콜
- 브로커와 클라이언트는 TCP/IP 소켓 연결을 한 후 상태 유지(연결 지향적)
*TCP/IP : 데이터가 의도된 목적지로 전송 될 수 있도록 보장해 주는 하나의 약속
▷ MQTT 주요 구성
명칭 | 설명 |
Message | MQTT를 통해 교환되는 모든 정보 |
Publisher ( 발행자 ) | Message 송신 |
Subscriber ( 구독자 ) | Message 구독 및 수신 |
Topic ( 주제 ) | Message 이름 ( 채널 ) |
Broker ( 중개인 ) | 발행자로 부터 모든 Message를 받고, 특정 Topoic을 구독한 구독자들에게 Message 전달 |
▷ Message Bus
Message Bus에 연결된 Application들이 발행자/구독자 Message 교환
▷ Qos ( Quality of Service )
- 단계↑ 통신품질↑ 성능↓ ( 상황에 맞게 사용 )
Level | 설명 |
Level 0 ( At most Once ) |
- Message는 구독자에게 한번만 전달 - 성공/실패 확인 안함 |
Level 1 ( At least Once ) |
- PUBACK ( Publish Acknowledge ) 을 통해 성공/실패 확인 - PUBACK이 분실 되면 발행자가 구독자에게 Message 다시 전달 ( 구독자 메시지 중복 수신 ) |
Level 2 ( Exactly Once ) |
- Message는 구독자에게 무조건 한번만 전달 - Message가 처리될 때까지 발행자, 구독자 모두 Message를 Message Storage에 저장 - PUBREC ( Publish Received ) 이 분실 되어 발행자가 구독자에게 Message를 다시 보내도 Broker는 저장한 Message를 구독자에게 다시 전달 하지 않고 발행자에게 PUBREC를 다시 보낸다. - 발행자는 PUBREC을 받으면 PUBREC을 Broker에게 보내고 Broker는 그때 저장한 Message를 지운다. |
▷ 관련 글
728x90
728x90
'▶ Back-End > 개념 요약' 카테고리의 다른 글
R2DBC 란? (0) | 2022.11.11 |
---|---|
Gradle vs Maven (0) | 2022.11.09 |
Spring WebFlux 란? (0) | 2022.11.08 |
리눅스 권한(Permission) 설정(8진수 표기) (0) | 2021.02.17 |
리눅스 파일 속성 (0) | 2021.02.17 |
댓글