본문 바로가기
프로그래밍 놀이터/Tips

MQTT 란? ( MQ Telemetry Transport )

by 돼지왕 왕돼지 2012. 11. 13.
반응형


출처 : 모스키토


MQTT ( MQ Telemetry Transport )

Description

- MQTT 는 machine to machine ( M2M ) connectivity protocol.


- lightweight publish/subscribe message transport. ( small size, low power usage, minimized data packet, efficient distribution )


- android push notification 을 구축하기 좋다.





Publish / Subscribe

- message 를 publish 하고, topic 에 대해 subscribe 하는 방식 ( pub/sub )이다. 여러 client 는 broker 와 연결되어 있고, 관심있는 topic 을 구독한다. 





Topics / Subscriptions 

- topic 은 / ( slash ) 를 구분자로 hierarchy 를 구성한다. 

- + 와 # 와일드 카드가 있다.

- + 는 single level hierarchy 에 적용된다.

- # 은 hierarchy의 나머지 level 에 적용된다.






Quality of Service

- 3가지 level 의 QoS 를 제공하는데, publish 와 subscribe QoS level 을 각각 설정할 수 있다.

- subscribe QoS  level 은 publish QoS level 을 넘을 수 없는 한도에서, subscribe level 은 자유롭게 설정될 수 있다.

- 더 높은 숫자가 더 신뢰성 있는 QoS 이다. 하지만, 신뢰성 있는 QoS 일수록 더 긴 latency 와 더 넓은 bandwidth 를 요구한다.
 

* 0 : broker/client 가 메세지를 한번만 전송하며, confirmation 을 받지 않는다.

* 1 : broker/client 가 메세지를 한번만 전송하며, confirmation 을 받는다.

* 2 : broker/client 가 four step handshake 를 이용하여 정확하게 한번 보낸다.




Retained Messages

- 모든 메세지는 모든 subscriber 에게 전송했어도 서버에 남겨진다. 이는 나중에 새로운 subscriber 에게 전송될 수 있다. 만약 topic 에 대한 update 텀이 길다면, 새로운 구독자는 새로운 업데이트까지 아무 정보 없이 오래 기다려야 한다.




Clean session / Durable connections

- 연결할 때 client 는 "clean session" (clean start라고도 불린다. ) flag 를 설정할 수 있다.  만약 clean session 이 false 로 set 된다면, connection 은 durable 하게 취급된다. 이 말은 client 가 연결해제되면 QoS1 과 QoS2 구독 메세지들이 다시 접속할 때까지 그냥 남아있게 된다. 만약 clean session 이 true 라면 모든 구독 메세지들이 다시 접속할 때는 사라진다.




Wills

- client 가 broker 에 접속하면, 이것은 브로커에게 의지를 전달하는 것을 의미한다. 다시 말해, client 가 예상치 못하게 연결이 끊기더라도 메세지를 전달하려는 의지가 있었다고 전달하는 것이다. 이 will message  는 topic, QoS 를 가지고 있고, 다른 message 와 같이 취급된다.



도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x )




반응형

댓글