「MQTT」の版間の差分
211.9.38.3 (会話) |
211.9.38.3 (会話) |
||
23行目: | 23行目: | ||
=== 柔軟性の高いメッセージ配布(Sub:購読) === |
=== 柔軟性の高いメッセージ配布(Sub:購読) === |
||
配布先条件が"/"区切りの階層構造になっていて、且つワイルドカードによる指定ができます。 |
配布先条件が"/"区切りの階層構造になっていて、且つワイルドカードによる指定ができます。<br /> |
||
配布先はそのパターンにマッチした宛先になります。 |
|||
* Topicベースでの[[出版-購読型モデル|Pub/Sub]] |
* Topicベースでの[[出版-購読型モデル|Pub/Sub]] |
||
* 1対1、1対N、N対Nのメッセージ配布 |
* 1対1、1対N、N対Nのメッセージ配布 |
2015年3月11日 (水) 03:17時点における版
MQ Telemetry Transport(Message Queue Telemetry Transport)は、メッセージキューの一種でメッセージ指向ミドルウェアであり、TCP/IPによるPub/Sub型データ配信モデルの軽量なメッセージプロトコルです。
非力なデバイスやネットワークが不安定な場所でも動作しやすい様にメッセージ通信電文が軽量に設計されている事が特徴です。
Pub/Sub型メッセージング·パターンには、メッセージブローカーが必要です。
ブローカーは、メッセージのTopicに基づいて、それを必要としているクライアントにメッセージ配信をしています。
アンディー·スタンフォード·クラークとシーラスリンクソリューションのアーレンニッパーは1999年に、プロトコルの最初のバージョンを執筆しています。
仕様
仕様はロイヤリティフリーで公開されていて、現在の仕様は3.1となっています。[1]
特徴
次の様な特徴を持っています。
軽量なプロトコル
プロトコル電文仕様が軽量で且つシンプルになっています。
- ヘッダーサイズが最小で 2 byte
- シンプルなプロトコルシーケンス
柔軟性の高いメッセージ配布(Sub:購読)
配布先条件が"/"区切りの階層構造になっていて、且つワイルドカードによる指定ができます。
配布先はそのパターンにマッチした宛先になります。
- TopicベースでのPub/Sub
- 1対1、1対N、N対Nのメッセージ配布
メッセージ配布の品質
アプリケーションの特性に合わせて三種類のQoS(Quality of Service)レベルの指定ができます。
- QoS0:最高1回
- メッセージが確実に届く保証はない
- メッセージ配布に失敗しても再送をしない
- QoS1:最低1回
- 必ずメッセージ配布するが、重複する可能性がある
- QoS2:正確に1回
- 必ずメッセージを配布して、重複も発生しない
メッセージ再配布機能
メッセージ再配布機能(Durable subscribe)は、次のフローで処理がされます。
- 意図せずにSubscriber(メッセージ配布)通信が切断
- その後、当該のSubscriberが再接続
- 切断から再接続までに発生したメッセージを再送処理
- QoS1,2のメッセージを再配布する
Last Will and Testament
Retain
- ブローカーが最後に配布したメッセージは必ず保存する
MQTTブローカー
MQTTブローカーをサポートするMQサーバは数多くあります。
それぞれのサーバがサポートする機能には、基本機能の他,サーバ特有の機能を持っています。[2]
主なMQTTブローカーは以下の通りです。
- IBM MessageSight (商用、ハードウェア)
- IBM WebSphere MQ Telemetry (商用)
- 時雨堂 Akane (商用)
- Mosquitto (OSS)
- RabbitMQ (OSS) ※Pluginが必要
- Apache_ActiveMQ (OSS)
MQTTを使用しているプロジェクト
現実の世界では、MQTTを実装するプロジェクトの数があります。
Facebook Messenger
FacebookのメッセンジャーにMQTTを使用してます。
IECC Scalable
彼らのIECCシグナリング制御システムのDeltaRailの最新バージョンでは、システムとシグナリングシステムの他の構成要素のさまざまな部分内の通信のためのMQTTを使用しています。
外部リンク
- ^ [1] MQ Telemetry Transport (MQTT) V3.1 プロトコル仕様
- ^ MQTT Broker Feature Comparison Feature comparison of the most popular MQTT brokers.