メッセージミドルウェア-MQの長所と短所、および各メッセージミドルウェアの比較

1. MQとは

       メッセージキュー(MQ)は、アプリケーション間の通信方法です。アプリケーションは、アプリケーション固有のデータ(メッセージ)をキューに書き込んだり、キューから取り出したりすることで通信します。リンクするための専用接続は必要ありません。

       上記は、Baidu BaikeによるMQの定義です。簡単に言えば、MQはシステム間のデータ転送に使用されます。たとえば、AシステムとBシステムの間にメッセージ転送がある場合、一般的な方法は、1つのシステムがインターフェイスを提供し、別のシステムがそのインターフェイスを呼び出してデータを転送してビジネスニーズを満たすことです。ただし、より良い方法は、メッセージキューを使用することです。システムAがメッセージをシステムBに配信する必要があると仮定すると、システムAはメッセージキューにメッセージを書き込み、システムBはメッセージキューを監視できます。メッセージがある場合、システムBはメッセージキューからメッセージを取り出して消費します。 。

2. MQの利点

       あなたは尋ねるかもしれません:システム間の通信がインターフェースを呼び出すことによって実行できることは明らかです、なぜMQを使うのですか?MQの使用には確かにメリットがあります。主なメリットは、デカップリング、非同期、ピーククリッピングの3つです。

3. MQの短所

1.システムの可用性が低下します。たとえば、MQがシステムに導入された場合、MQが失敗した場合はどうすればよいですか?MQが切断すると、システム間の通信が完全に切断され、システムが使用できなくなります。これは実際に起こります。一般的に言えば、外部依存関係が導入されるほどシステムは脆弱になり、依存関係ごとにシステム全体が崩壊します。
2.システムの複雑さの増加。本来、システムはインターフェースを介して直接呼び出すことができます。MQが導入された場合、メッセージの繰り返し消費、メッセージ損失、保証された消費順序など、MQのさまざまな状況を考慮する必要があります。ますます複雑に。
3.データの整合性の問題。たとえば、システムはすでに操作が成功したことを顧客に返しましたが、この時点では操作BCは成功していますが、操作Dは失敗し、データの一貫性が失われています。

       したがって、ソフトウェアの通常の機能開発では、メッセージキューの使用シナリオを意図的に見つける必要はありませんが、パフォーマンスボトルネックがある場合は、ビジネスロジックで非同期に処理できる時間のかかる操作があるかどうかを確認し、存在する場合は導入することができます。解決するメッセージキュー。そうしないと、メッセージキューを盲目的に使用すると、メンテナンスと開発のコストが増加する可能性がありますが、パフォーマンスを大幅に向上させることができず、利益は損失に値しません。

 

 

開発中に、どのメッセージミドルウェアを選択する必要があるかを以下に示します。

1.コミュニティは非常にアクティブであり、だれもそれを維持できないため、ActiveMQは推奨されなくなりました。使用中に問題が発生すると、解決策を見つけるのが難しくなります。

2. RabbitMQがより多く使用され、スループットが1万に達し、遅延が低くなっています。最も優れた点の1つは、中小企業に非常に役立つバックエンド管理システムを提供することです。観点から見ると、コミュニティも比較的活発です。デメリットは、開発言語がアーラン言語を使用していることです。Java開発者にとって、アーラン言語は理解が難しく、詳細に学ぶことができず、単純にしか使用できません。

3. RocketMQのAlibabaはオープンソースであり、現在コミュニティは比較的活発で、Java言語で開発され、分散クラスタをサポートしています。ただし、Aliがメンテナンスされなくなると、破棄される可能性があります。能力のある大企業なら自分でソースコードを調べてメンテナンスしてもいいし、小企業だとピットインしてしまう。

4.カフカは主にビッグデータの分野で使用されています。その主な利点は、その高いスループットであり、分散されます 

 

 

 

 

 

おすすめ

転載: blog.csdn.net/bj_chengrong/article/details/102689117