2016-09-02 22 views
0

私はかなり簡単な質問があります。誰かがAWSを使用して商用のAndroidプロジェクトを行う場合は、アプリケーションが通信してからAWSにデータベースリクエストを送信するためのRESTletまたはProtocollバッファAPI(サーバー/サービス)を構築するか、APIをスキップすることをお勧めしますDynamoDBサービスと直接通信するだけで、コードは少なくなりますが、かわいいものではありませんか?APIまたはAWSに直接接続しますか?

答えて

0

私は、あなたのアプリをDynamoDBから切り離すとスケーリングに役立つと言います。もうDynamoDBを使用しない場合はどうなりますか?あなたはサービスを変更するだけで、それはアプリとそのユーザーには分かりません。

あなたのアプリがそれを許容できる場合は、非同期のアプローチを試すことができます。これにより、待ち時間が短縮され、柔軟性/スケーラビリティが向上します。この例では、アプリはSNSトピックにイベントをプッシュします。そこから、これらのメッセージを保持するためにこのトピックにサブスクライブされたSQSキューを持つことができます。次にキューを処理するLambda関数/ Webアプリケーションがあります。

+0

Hmmm ..私はあなたの非同期の例を理解しようとしていますが、実際にはそれを得ることはできません。それを説明する簡単な方法はありますか? – user3223130

+0

さて、単純に言えば、あなたのアプリは消費者が処理するためのメッセージを生成します。 例を示します。私はこの本AWS In Actionを強くお勧めします。 https://github.com/AWSinAction/code/tree/master/chapter12/url2png この例では、index.jsとworker.jsはbeanstalkアプリケーションです。 worker.jsはSQSメッセージをキューから取得します(beanstalkでこれを設定できます) – chympara

+0

Oooooh ..soということは、サービスが到着した時点で理論的にすべてのメッセージをキューに入れてから実際の作業をスローすることができるということです他のスレッドが処理されていてもサービスが要求を処理できるようにするには? – user3223130

関連する問題