サーバは、様々なタイプの製品メッセージをサブスクライブすることができる。 メッセージには、デバイスアップストリームメッセージ、デバイスステータス変更、ゲートウェイおよびサブデバイス接続、デバイスライフサイクル変更、およびデバイストポロジ変更が含まれます。 サーバー側サブスクリプションを設定すると、IoT Platformは、プロダクトのすべてのデバイスからサブスクライブされたメッセージをサーバーに転送します。
シナリオ
サーバー側サブスクリプションは、次のシナリオで使用できます。
サーバーは、多数のデバイスから同時にアップストリームメッセージを受信します。
サーバーは、製品のすべてのデバイスからサブスクライブされたメッセージを受信します。
同じ製品からのメッセージを使用する複数のサーバーがある場合、メッセージはいずれかのサーバーにランダムに転送されます。
サーバー側サブスクリプションとデータ転送の違いについては、「データ転送ソリューションの比較」をご参照ください。
Advanced Message Queuing Protocol (AMQP) サーバーを使用してデバイスメッセージをサブスクライブする
AMQPサーバー側サブスクリプションを設定すると、IoT Platformは製品のすべてのサブスクライブされたデバイスメッセージをAMQP経由でサーバーに転送します。
次の図は、AMQPサーバー側サブスクリプションでメッセージが転送される方法を示しています。
AMQPサーバー側サブスクリプションの利点:
複数の消費者グループをサポートします。 異なる環境に対して複数のコンシューマグループを作成できます。 たとえば、グループAとグループBの2つのコンシューマーグループを作成できます。グループAは開発環境で製品Aのメッセージをサブスクライブし、グループBは本番環境で製品Bのメッセージをサブスクライブします。
説明複数の消費者グループが製品Bのメッセージに加入している場合、消費者グループは、製品Bから同じメッセージを同時に受信することができる。
トラブルシューティングを容易にします。 サーバー側サブスクリプションを使用すると、クライアントのステータス、累積メッセージ、およびメッセージ消費率を表示できます。
線形スケーラビリティをサポートします。 コンシューマークライアントを追加することで、メッセージ転送機能を大幅に改善できます。
最初にリアルタイムメッセージをプッシュします。 メッセージの蓄積はサービスに影響しません。
リアルタイムメッセージは、プッシュレート制限に達した場合、または失敗が発生した場合、累積メッセージよりも優先されます。
クライアントの障害や低消費率によってメッセージが蓄積された場合でも、クライアントが復旧した後に、蓄積されたメッセージとともにリアルタイムメッセージが送信されます。 その後、デバイスは再びリアルタイムでメッセージをプッシュできます。
AMQPサーバー側サブスクリプションを使用する前に、コンソールで設定する必要があります。 詳細については、「AMQPサーバー側サブスクリプションの設定」をご参照ください。 AMQPクライアントを開発し、IoT Platformに接続する必要があります。 その後、クライアントを使用してメッセージを受信できます。 詳細については、「AMQPクライアントをIoT Platformに接続する」をご参照ください。
IoT PlatformでAMQPサーバー側サブスクリプションを使用すると、転送されたメッセージの数に基づいて課金されます。 課金方法の詳細については、「メッセージング料金」をご参照ください。.
MNSサーバーを使用してデバイスメッセージをサブスクライブする
MNSサーバー側サブスクリプションを設定すると、IoT Platformはサブスクライブされたメッセージをメッセージサービス (MNS) キューに転送します。 サーバー上のMNSクライアントは、MNSキューをリッスンすることでデバイスメッセージを受信します。
次の図は、MNSサーバー側サブスクリプションを使用してメッセージを転送する方法を示しています。
MNSサーバー側サブスクリプションを設定する方法については、「メッセージサービス (MNS) を使用してデバイスメッセージをサブスクライブする」をご参照ください。
作成したキューと受信したメッセージに基づいて課金されます。 課金方法の詳細については、 MNSドキュメント