Broker
, Publisher
, Subscriber
모델로 이루어진다.MQTT 프로토콜은 게시/구독 모델의 원칙을 기반으로 작동한다.
MQTT 브로커는 MQTT 네트워크의 중심에 위치하며, 모든 메시지의 중계 역할을 담당한다. 퍼블리셔로부터 메시지를 받아 서브스크라이버에게 전달하는 중개자 역할을 수행한다.
- 메시지 라우팅: 브로커는 서브스크라이버가 구독한 토픽에 따라 메시지를 적절히 라우팅한다.
- 세션 관리: 연결된 클라이언트의 세션 상태를 관리하며, 네트워크가 불안정할 경우에도 메시지를 보관하고 필요 시 재전송한다.
- 보안 제공: SSL/TLS를 통해 데이터의 암호화와 보안을 담당한다.
- 규모의 확장성: 수천, 심지어 수만 개의 동시 연결을 관리할 수 있다.
퍼블리셔는 메시지를 생성하고 MQTT 브로커에게 전송하는 역할 을 한다. 이들은 주로 센서 데이터, 사용자 입력 또는 다른 소스로부터 정보를 수집하고 이를 토픽으로 분류하여 브로커에게 발행한다. 퍼블리셔의 핵심 기능은 다음과 같다:
- 데이터 발생: 다양한 소스로부터 데이터를 수집하고 이를 MQTT 메시지로 변환한다.
- 토픽 지정: 각 메시지에 토픽을 할당하여 브로커가 메시지를 적절한 서브스크라이버에게 전달할 수 있도록 한다.
서브스크라이버는 특정 토픽에 대한 메시지를 수신하고자 하는 클라이언트이다. 이들은 브로커에게 특정 토픽을 구독하고, 해당 토픽에 대한 메시지가 브로커에 의해 발행될 때 이를 수신한다.
- 토픽 구독: 하나 이상의 토픽을 구독하여, 관심 있는 데이터만을 받아볼 수 있습니다.
- 데이터 처리: 수신된 메시지를 기반으로 필요한 작업을 수행합니다.