0

現在、.NET プラットフォームを MSMQ から ActiveMQ に移行中です。1 日に 3,000 万以上の永続的なメッセージを送信するため、スループットと容量は私たちにとって重要です。MSMQ 依存アプリケーションの構成方法は、最初にローカル/プライベート キューに書き込むことです。次に、これらのメッセージをそれぞれのリモート キューにルーティングして処理するローカル サービスがあります。これにより、最初のエンキュー/書き込み書き込みが高速になり (そうです、非同期エンキューも使用できます)、リモート サーバーが利用できなくてもメッセージが失われることはありません。

ActiveMQ に同じパラダイムを使用する予定でしたが、ほとんどのアプリケーション サーバーに NAS ストレージを備えた VM を使用することにしました。これにより、メッセージが NAS に送信されるため、各メッセージの書き込みパフォーマンスが大幅に低下します。また、キューイングへのアプローチを再考する必要があると感じています。永続的で高スループットのニーズがある ActiveMQ を使用するためのベスト プラクティスと考えられるものを知りたいです。専用のキュー サーバー (VM ではない) の使用を検討する必要がありますか? しかし、これは、アプリケーションからのすべての書き込みが直接ネットワーク経由で行われることを意味します。高可用性の要件にどのように対処すればよいですか?

任意の提案をいただければ幸いです。

4

1 に答える 1

1

ブローカーのネットワークに ActiveMQ インスタンスをデプロイでき、トポロジにはローカル インスタンスとリモート インスタンスを含めることができます。ActiveMQ のローカル インスタンスを含むトポロジをデプロイして、メッセージが送信者のできるだけ近くで保持されるようにし、メッセージが要求に応じてリモートの ActiveMQ インスタンスに転送されるようにしました。このスタイルのトポロジでは、すべての宛先からのメッセージの転送を許可しないようにネットワーク コネクタを構成することをお勧めします。つまり、すべての宛先へのメッセージの転送を公然と許可する代わりに、excludedDestinations プロパティを使用して転送されるメッセージの数を絞り込みたい場合があります。

ActiveMQ による高可用性に関しては、マスター/スレーブ構成はまさにこの目的のために設計されています。用途に合わせて3つのフレーバーをご用意。

それが役立つことを願っています。

ブルース

于 2010-08-14T20:56:00.590 に答える