こんにちは、EC2 のクラスターで実行される 3 つの RabbitMQ サーバーを作成します
CPU 使用率に基づいて RabbitMQ クラスターをスケールアウトしたいのですが、メッセージを発行すると、1 つのサーバーのみが CPU を使用し、他の RabbitMQ サーバーは CPU を使用しません。
どうすればRabbitMQクラスター全体に負荷を分散できますか
こんにちは、EC2 のクラスターで実行される 3 つの RabbitMQ サーバーを作成します
CPU 使用率に基づいて RabbitMQ クラスターをスケールアウトしたいのですが、メッセージを発行すると、1 つのサーバーのみが CPU を使用し、他の RabbitMQ サーバーは CPU を使用しません。
どうすればRabbitMQクラスター全体に負荷を分散できますか
RabbitMQ クラスターはスケーラビリティを向上させるように設計されていますが、システムは完全に自動化されているわけではありません。
クラスター内のノードでキューを宣言すると、キューはその 1 つのノードでのみ作成されます。したがって、キューが 1 つある場合、パブリッシュ先のノードに関係なく、メッセージはキューが存在するノードに到達します。
RabbitMQ クラスターを適切に使用するには、次のことを確認する必要があります。
または、High Availability Queuesをご覧ください。これらは通常のキューに似ていますが、キューの内容は複数のノード間でミラーリングされます。したがって、あなたの場合、1 つのノードにパブリッシュすると、RabbitMQ はパブリッシュを他のノードにミラーリングし、コンシューマーは内部転送でクラスターが停止することを心配することなく、いずれかのノードに接続できます。