1.7. 送信バッファと再送制御¶
ICE CoreはMQTTプロトコルによるデータ送信を行う際、バックエンドとの通信が一時的に遮断された場合に、接続先への再接続や再送を行います。 バックエンドのMQTT Brokerがダウンしている間や、MQTTコネクション切断中にエミットされたデータが送信バッファに蓄積されます。
また、送信バッファの上限は設定によって変更可能で、エッジ―バックエンド間の通信回線品質に応じて再送可能なデータ量を調整する事が出来ます。 この送信バッファに蓄積されたデータの再送時、データの送信順序は保証されません。
1.7.1. 機能一覧¶
主な機能を以下に列挙します。
MQTT送信バッファのメッセージ数制限
送信バッファに蓄積するメッセージの上限を設定します。
- MQTTの送信順序保証 【OP-Addon】
MQTTの送信順序をクラウドアダプタへのデータ格納順序と同じにする機能です。
- MQTT送信バッファの有効期限設定 【OP-Addon】
メッセージの有効期限設定を持った送信バッファを利用可能です。
1.7.2. MQTTの送信順序保証 【OP-Addon】¶
また、メッセージ送信間隔の指定が可能となっています。
注釈
本機能はQoS 1のメッセージにのみ有効です。
設定方法については、Operability Add-onに関連する設定を参照してください。
注釈
本機能有効時は複数メッセージを並列に送信することはなく、MQTT Brokerからのpuback受信をもって、シーケンシャルに次のメッセージ送信を行います。そのため、機能無効時と比較してスループットやレイテンシが低下する可能性があります。高負荷時には、送信バッファが溢れる可能性もありますので、送信バッファのメッセージ数上限や有効期限等の設定にご注意ください。
1.7.3. MQTT送信バッファの有効期限設定 【OP-Addon】¶
本機能を利用することで、送信バッファに格納されたメッセージに有効期限を設定することができ、送信バッファに格納されてから一定時間経過したメッセージを自動で削除することが可能となります。
設定方法については、Operability Add-onに関連する設定を参照してください。
送信バッファからメッセージが削除されるのは下記のケースです。
- 送信バッファに格納されたメッセージ数が上限を超えた場合
- メッセージの有効期限が切れた場合
これらのケースでメッセージが削除されたとき、イベント通知機能によりデバイスアダプタやエッジアプリケーション、Node-REDノードで削除を検知できます。必要に応じて、イベント通知機能をご利用ください。
注釈
本機能はメッセージの永続化を行うものではないため、ICE Coreがダウンした場合には送信バッファに格納されていたメッセージは失われます。