2분
발행과 구독
MQTT
발행과 구독
MQTT > MQTT
학습 목표
- 발행·구독 구조가 무엇을 푸는지 설명한다
- 브로커가 하는 일과 그 대가를 안다
보내는 쪽이 받는 쪽을 모른다
값을 보내는 가장 단순한 방법은 받을 쪽 주소를 알고 그리로 보내는 것입니다. 그런데 받을 쪽이 늘어나면 보내는 쪽을 매번 고쳐야 합니다. 감시 화면에 이어 이상 탐지가 붙고 리포트가 붙으면 센서 설정을 세 번 건드리게 됩니다.
MQTT 는 이 자리를 다르게 풉니다. 보내는 쪽은 주제(topic)에 값을 올리기만 하고, 받고 싶은 쪽이 그 주제를 구독합니다. 가운데서 나눠 주는 것이 브로커입니다.
받는 쪽을 하나 더 붙여도 보내는 쪽은 고칠 것이 없습니다. 이것이 MQTT 가 IIoT 에서 널리 쓰이는 가장 큰 이유입니다.
대가도 있다
대가는 분명합니다. 브로커가 죽으면 전부 멈춥니다. 그래서 브로커를 이중화하거나 현장과 클라우드에 나눠 두는 설계가 따라옵니다.
그리고 주제 이름을 어떻게 지을지가 뒤에 큰 차이를 냅니다. factory/line1/vib 처럼 계층으로 짓는 것이 관행인데, 이 규칙을 처음에 안 정하면 설비가 늘면서 주제가 뒤죽박죽이 되고 나중에 고치기가 매우 어렵습니다.
MQTT 가 푸는 것은 속도가 아니라 보내는 쪽과 받는 쪽을 떼어 놓는 일입니다.