Celeryのようなスケジューリング システムのタスク/メッセージ キューを作成するために使用できるRabbitMQのようなメッセージ ブローカーは初めてです。
さて、ここに質問があります:
新しいタスクを追加して、Celery などのコンシューマ プログラムで使用できるテーブルをPostgreSQLに作成できます。
いったいなぜ、RabbitMQ のようなまったく新しい技術をセットアップしたいのでしょうか?
現在、PostgreSQL のようなデータベースは分散環境で機能するため、スケーリングが答えになるとは思えません。
データベースが特定の問題に対してどのような問題を引き起こすかをグーグルで調べたところ、次のことがわかりました。
- ポーリングはデータベースをビジー状態にし、パフォーマンスを低下させます
- テーブルのロック -> 再び低パフォーマンス
- 数百万行のタスク -> 繰り返しますが、ポーリングのパフォーマンスは低いです
さて、RabbitMQ やその他のメッセージ ブローカーは、これらの問題をどのように解決するのでしょうか?
AMQP
また、プロトコルが次のとおりであることもわかりました。その中で何が素晴らしいのですか?
Redisはメッセージ ブローカーとしても使用できますか? RabbitMQ よりも Memcached に似ていると思います。
これに光を当ててください!