質問・問題
Message Notification Service と query Method の違いについて教えてください。
回答・解決方法
Agora Cloud Recording でサービスの状態を取得・監視(Get service status)する際の設計方針や推奨事項は、公式のベストプラクティスにまとめられています。
状態監視の手段としては、query method と Message Notification Service (NCS, Webhook Notification) の2種類が提供されています。
基本的には信頼性を重視して query method をメインとし、リアルタイム性の補助として Message Notification Service を併用する構成が推奨されています。それぞれの特徴や注意点は以下の通りです。
query method
周期的に query を呼び出して Cloud Recording の状態監視が可能となります。
利点:
-
高い信頼性
欠点:
- 提供できるステータス情報が限られます
- アクティブなクエリ発行となります。また Queries Per Second (QPS) の制約上、クエリを大量に発行する事はできません。そのため、Message Notification Service と比べてリアルタイム性は損なわれます
Message Notification Service (NCS, Webhook Notification)
Message Notification Service は、サービスの状態監視を補助 (補完) する為の手段として使用することができます。ご利用にはイベント通知を受け取る HTTPS サーバーを設定する必要があります。
利点:
- 高いリアルタイム性
欠点:
- サーバーは受動的に通知を受信する形となり、万一ネットワーク障害等が発生した場合に通知ロスが発生する事があります
- 通知配信の確認メッセージがロスした場合に、同じ通知が配送されることがあります。この場合、お客様側で通知を重複排除する必要があります
- 通知が正しい順番でサーバーに届かない場合があります
※ Agora では、コアアプリは Message Notification Service に依存しないことを推奨しています。既に Message Notification Service に高く依存した構成の場合、redundant message notification を有効にすることで通知量を 2 倍にし通知ロスを低減するオプションがあります。但し、この方法でも 100% の到達率を保証するものでないことにご注意ください。