現在、.NET プラットフォームを MSMQ から ActiveMQ に移行中です。1 日に 3,000 万以上の永続的なメッセージを送信するため、スループットと容量は私たちにとって重要です。MSMQ 依存アプリケーションの構成方法は、最初にローカル/プライベート キューに書き込むことです。次に、これらのメッセージをそれぞれのリモート キューにルーティングして処理するローカル サービスがあります。これにより、最初のエンキュー/書き込み書き込みが高速になり (そうです、非同期エンキューも使用できます)、リモート サーバーが利用できなくてもメッセージが失われることはありません。
ActiveMQ に同じパラダイムを使用する予定でしたが、ほとんどのアプリケーション サーバーに NAS ストレージを備えた VM を使用することにしました。これにより、メッセージが NAS に送信されるため、各メッセージの書き込みパフォーマンスが大幅に低下します。また、キューイングへのアプローチを再考する必要があると感じています。永続的で高スループットのニーズがある ActiveMQ を使用するためのベスト プラクティスと考えられるものを知りたいです。専用のキュー サーバー (VM ではない) の使用を検討する必要がありますか? しかし、これは、アプリケーションからのすべての書き込みが直接ネットワーク経由で行われることを意味します。高可用性の要件にどのように対処すればよいですか?
任意の提案をいただければ幸いです。