1

データベースに保存されるように、使用ログをサーバーに送信したい Android アプリケーションを取得しました。

基本的に、単純なボタンクリックであっても、ユーザーが行うほとんどすべてのアクションをログに記録したいと思います。

MQTT はアプリケーションで既に使用されているので、ロギングにも使用するとよいのではないかと考えました。

たとえば、何かをログに記録するたびに、MQTT を介してアクションを公開するだけで、サーバー側のサービスがそのログ チャネルをサブスクライブし、ログの公開が到着するたびにそれを DB に挿入します。 .

ただ、気になる点がいくつかあります(-_-;)

  1. ユーザーが何かを行うたびに 30 文字のメッセージを発行すると、帯域幅が大きくなるかどうかを知りたいです。
  2. そのチャネルをリッスンし、各メッセージを DB に挿入するサービスにとって最適なソリューションは何でしょうか。

もう1つのオプションは、通常のRESTメソッドを介してデータを送信することですが、2つのオプションがあり、大量に送信するか(アプリケーションが閉じる前にいつ送信するのが適切かを知る必要があります)、実際に送信します-ロギング アクションが発生する時間。

そうすれば、MQTT ロギング チャネルにサブスクライブするサービスは必要ありません。

そして、サーバーが数千のユーザーを同時に処理できると仮定しましょう。

興味深い考えはありますか?

ありがとう!

4

1 に答える 1

5

すでに MQTT を使用している場合は、それをログに使用することは非常に理にかなっています。上記の帯域幅要件を簡単に計算すると、大きな負担になる可能性は低いことがわかります。私の例では、ロギング アプリは 1 秒あたり 2000 件のメッセージを処理できる必要があります。使用するデータベースに接続する単純な MQTT クライアントにすぎません。https://bitbucket.org/oojah/mosquitto/src/426b311d682d/examples/mysql_log/mysql_log.cに mysql の簡単な例があります。

おそらく考慮したいことは、非常に多くのイベントを送信することによる電力消費です。Stephen Nicholas は、Android で MQTT の使用状況を調べる 2 つの調査を実施しました。最初は、多くのシナリオでの単純な MQTT の使用法 ( http://stephendnicholas.com/archives/219 ) と、暗号化された MQTT と HTTPS の比較 ( http://stephendnicholas ) です。 .com/archives/1217 )。考慮すべきポイントは、接続をアクティブに保つためのバッテリー コストと、メッセージ送信のコストと速度です。1 秒あたり 1 メッセージ、キープアライブ = 240 秒、ユーザーが Stephen と同じ電話を持っていると仮定すると、電話で他のことが起こっている場合に比べて、1 時間あたり約 3.1% のバッテリー寿命を消費します。

于 2012-06-01T13:53:39.703 に答える