フレーズは毎回完全にあなたの要件が何であったかによって異なります。確かに、誰にとっても毎回勝てるわけではありません。
すでにデータベースを使用している単一のシステムを構築している場合、非常に高いパフォーマンスのスループット要件がなく、他のチームやシステムと通信する必要がない場合は、おそらく正しいでしょう。
シンプルで低スループット、ほとんどがシングル スレッドの場合、データベースはメッセージ キューの完全に優れた代替手段です。
メッセージ キューが輝くのは、次の場合です。
- 多くのサーバー/プロセスで毎秒数万のメッセージを同時に処理できるように、高性能で同時実行性が高くスケーラブルなロード バランサーが必要な場合スレッドは、1 つのプロセスがメッセージ キュー テーブルをロックする傾向があるため、かなり困難です)。
- 異なるデータベースを使用して異なるシステム間で通信する必要がある (そのため、システム データベースへの書き込みアクセス権を別のチームの他の人に渡す必要はありません)。
単一のデータベース、チーム、およびかなり控えめなパフォーマンス要件を持つ単純なシステムの場合は、必ずデータベースを使用してください。仕事などに適したツールを使用してください。
ただし、メッセージ キューが優れているのは、相互に通信する必要のあるシステムが多数ある大規模な組織 (したがって、ビジネス データベースが障害の中心点やバージョン地獄の場所になることを望まない) や、高いパフォーマンス要件。
パフォーマンスの点では、メッセージ キューは常にデータベース テーブルよりも優れています。メッセージ キューはジョブ用に特別に設計されており、ペシミスティック テーブル ロック (キューのデータベース実装に必要 - 負荷分散を行うために必要) に依存しないためです。また、優れたメッセージ キューは、キューへのメッセージの熱心な読み込みを実行して、データベースのネットワーク オーバーヘッドを回避します。
同様に、Web サーバー間で HTTP リクエストのロード バランシングを行うためにデータベースを使用することはありません。これは遅すぎるためです。ロード バランサーに高いパフォーマンスが必要な場合は、データベースも使用しません。