38

ソケットプログラミングの経験はあまりありませんが、それについて少し読んでみました。私は MDB とメッセージング キューに精通しています。誰かが私に、キュー (MDB など) は「直接ソケット接続にすぎない」と言っていました。誰かが私のためにこれらの2つを比較できますか.

4

2 に答える 2

67

この 2 つは、異なる層を表しているため、比類のないものです。これは、リレーショナル データベースをディスク上のファイルと比較したり、家をれんがと比較したりするようなものです (つまり、データベースを構築するにはファイルが必要であり、家を建てるためにはれんがが必要であり、場合によっては必要なのはファイルまたはれんがだけですが、そうではありません)。それらを比較可能にします)。

メッセージング キューは、送信者と受信者がお互いのことをあまり知らなくても通信できるようにするソフトウェアの一部です (もちろん、どちらもキューについて知る必要があります)。ネットワーク コードの実装、障害の処理、ルーティング 1キューは未配信メッセージの一時的なストレージとしても機能するため、送信者と受信者が同時に動作していない場合でも、システムは機能します。それとは別に、キューは承認、トランザクションなどの追加サービスを提供できます。

ソケット接続は、「現在、少なくとも何らかの理由で接続が切断されるまで、2 つのプログラムがネットワークを介して相互にデータを送信できる」という低レベルのネットワーク抽象化です。そのため、通常、メッセージング キューはソケット接続を使用してネットワーク上で機能します。

ちなみに、あなたが言及しているMDB(Message Driven Bean)はメッセージキューではありません(JDBCがデータベースではないのと同じように)。これは、トランザクション メッセージを消費するための API です。それらはキューから来るかもしれませんが、そうである必要はありません。

于 2012-05-19T19:16:21.517 に答える