0

モバイル アプリはその場所をサーバーに更新し、サーバーはコンテンツで応答します。

モバイルアプリケーションからサーバーにリアルタイムの位置情報の更新を送信するために MQTT (Apache Artemis) を使用することは可能ですか?

この場合、サーバー アプリケーション (PHP) でトピックをサブスクライブする必要がありますか?

サーバーは、単一のサブスクライブされたチャンネルを介してすべての位置情報の更新を処理する必要があります。これにより、サーバーの速度が低下する可能性がありますよね?

フローは次のようなものです - Android クライアントはユーザーの位置を定期的に (例えば 30 秒) サーバーに送信し、PHP サーバーは最も近いユーザーを返し、アプリはそれらを地図上に表示します。

MQTT を使用して計画したアーキテクチャは次のとおりです。各モバイル アプリのユーザー ID はトピックと見なされるため、各ユーザーに応答を送信できます。PHP サーバーは、「LOCATION_TRACKER」などのトピックと見なされます。すべてのモバイル アプリは、場所をサーバー トピック「LOCATION_TRACKER」に発行します。サーバーは、ID をトピックとして使用して、リストを作成し、個々のユーザーへの応答を公開します。

このアーキテクチャでは、PHP サーバーはトピック「LOCATION_TRACKER」をサブスクライブし、実際にはすべてのモバイル アプリが 1 つのトピックに発行されます。何百万人ものユーザーが PHP サーバーをスケーリングする方法を考えてみてください。または、これを行う他の方法はありますか?

このアプリケーションは、少なくとも 1,000 万人のユーザーを対象としています。同時ユーザーの半分をサポートする必要があります。

4

1 に答える 1

0

モバイル デバイスから MQTT ブローカーに位置情報の更新を送信することは完全に可能です。たとえば、OwnTracksプロジェクトを見てください。

2 番目のポイントについては、大量のメッセージを処理するときにアプリケーションがどのように動作するかは、そのアプリケーションがどのように設計されたかに完全に依存しています。大容量システムの場合、ローカル キューとスレッド プールを使用して負荷を分散するのが通常のパターンですが、それはすべて、データをどう処理する必要があるかによって異なります。

于 2016-02-19T11:34:34.193 に答える