MQTT


MQTTとは?


メッセージキューTelemetryTransportは、エージェントを介してサブスクリプション・パブリッシュ構造のメッセージ通信をサポートし、サービス品質(QoS)をサポートします.作成日5.0まで.

Broker



Brokerは、MQTTを介して通信されるメッセージを受信し、サブスクリプションターゲットにメッセージを送信して、パブリッシュされたTopicに協力する中継ロールです.
様々なBrokerが存在する[ここ](ここ)https://github.com/mqtt/mqtt.github.io/wiki/server-support)は、Broker固有のサポート履歴を提供します.(更新されていない情報がある場合があります)

  • Mosquitto:サーバの冗長性によるメッセージキューの問題がEMQに変更されました

  • EMQ:クラスタではなく共有サブスクリプションによる冗長性の問題の解決
    	> **Clustering**  
    	> 노드간 발행 / 구독 관계를 공유하여 부하를 감소시킨다.  
    	>![Clustering](https://i.imgur.com/m9vrJjb.png)
    
    	> **Shared subscription**  
    	> 기존에 구독되어있는 사람 모두에게 메세지가 전달 되는 상황을 순차적으로 입력받은 메세지를 하나의 구독자에게만 전달한다.  
    	> ![Shared subscription](https://i.imgur.com/CMdS4zS.png)
  • Publish / Subscribe



    AがXという名前のTopicを購読し、BがXをリリースした場合、BrokerはAからAにメッセージを転送します.

    Topic


    ターゲットTopicahome/livinbroom/sensor 1 BMHOME/kitchenchem/sensor 1 DHOME/kitchen/senser 2 EHOME/#FHOME/+/ssensor 1
    Topicは、パブリッシュまたは速博アプリケーションのターゲットを指定します./を区切り記号として使用して、各Topicを区切ります.ワイルドカードは、+および#を含む.
    速博アプリが4個(AからDまで)登録されている場合.
    送信Topic受信TopicAABBCCCDDEA,B,C,DFA,C
    上記のターゲットは、パブリッシュされたメッセージのメッセージを受信することができる.

    QoS

  • QoS 0:送信者およびエージェントは、パケット損失を考慮せずにパケットのみを送信する.
  • QoS 1:送信側は、受信した応答が返されるまで、複数回再試行する.重複情報が発生する可能性があります.
  • QoS 2:送信者および受信者は、handshakingによって1回のみ要求/処理される.握手会が遅れる.


  • 関連ライブラリ


    Java


    paho #


    リファレンス

  • https://ko.wikipedia.org/wiki/MQTT
  • https://www.semanticscholar.org/paper/Correlation-analysis-of-MQTT-loss-and-delay-to-QoS-Lee-Kim/f648e0c502776b41d8edc88e4f7789727c02b8fc
  • https://randomnerdtutorials.com/what-is-mqtt-and-how-it-works/