AWS SQSキューを実装して、バックエンドサーバとのデータベース対話を最小限に抑えようとしましたが、問題が発生しています。AWS SQSキューパフォーマンスを改善する
- 私は1つのSQSキューからメッセージを探す消費者プロセスを1つ持っています。
- クライアントがWebインターフェイスのボタンをクリックすると、JSONメッセージがSQSキューに配置されます。
- アプリケーションサーバーのバックエンドジョブがSQSキューからJSONメッセージを取得し、そのメッセージをキューから削除して処理します。
機能をテストするために、私は1つのクライアントのロジックを実装しました。それは正常に動作していた。しかし、私は3つのクライアントを追加したとき、正しく動作しませんでした。 SQSキューに500個のメッセージが滞留していて、バックエンドジョブがキューから正しく読み取っていることがわかりました。
バックエンドジョブの数を増やす必要がありますか、クライアントのSQSキューの数を増やす必要がありますか。現在、すべてのクライアントが同じキューにメッセージを送信します。
必要なバックエンドジョブの数を計算するにはどうすればよいですか?また、SQSをより速く動作させるための設定はありますか?
さらに詳しい情報が必要です - 私はSQSを通して何百ものメッセージを何も問題なくプッシュしました。コード/詳細が必要です。 – stdunbar
「500メッセージで立ち往生しました」とはどういう意味ですか?何が正確にここで働いていないのですか?キューにメッセージを追加できないと言っていますか? SQSキューにはメッセージが格納されます。 SQSは「仕事」をしていないので、「仕事をより速く」するという意味を理解していません。このように必要なバックエンドジョブの数を計算します。キュー内のアイテムが必要なだけ速く処理されない場合は、より多くのワーカーを追加します。 –
ありがとうございました。 1秒あたりに格納できるメッセージの数に制限があるのか疑問に思っていました。無制限のワーカースレッドを追加してチェックアウトするように見えます。 – Arav