0

JMS は Java メッセージング「API」ですが、HornetQ などのサードパーティ API が実際に何をするのかはまだわかりません。デフォルト/参照実装はありませんか?

4

2 に答える 2

3

JMSは単なる仕様であり、任意の実装を選択できます。

  • HornetQ
  • ActiveMQ
  • RedHat MRG
  • IBM MQ
  • OracleMQ...などなど...など

それぞれが仕様に加えて異なる機能を提供します。

たとえば、HornetQは確認確認を提供します(したがって、確認を待機している送信をブロックする必要はなく、非同期サーブレットなどの非同期操作に高度な手法を使用できます)。

HornetQは大きなメッセージも提供します。

HornetQは、JMSなしで使用できるコアAPIも提供します。

たとえば、JMSを使用したくない場合は、IBMのAPIを使用することもできます。

したがって、要約すると、Javaメッセージサービス-JMSは単なるJavaインターフェイスのセットであり、適切な実装を選択する必要があります。

于 2012-11-09T14:17:42.790 に答える
2

あなたはいくつかの概念を混ぜ合わせていると思います。あなたが言ったように、JMSはAPI(または必要に応じて仕様)です。簡略化されたJMSは、一部のベンダーが実装する必要のある一連のインターフェースを定義します。あなたの場合、JBossHornetQを使用しています。ただし、ApacheActiveMQなどの他の実装もあります。したがって、必要に応じて、または要件が変更された場合は、実装を交換できます。

JMS APIを実装するプロバイダーには、追加機能が含まれている場合があります。ただし、これらは独自仕様であり、JMS仕様には含まれていません。したがって、レプリケーションが1つのプロバイダーに含まれている一方で、別のプロバイダーはこの種の機能を提供していない可能性があります。

別の例はJDBCにあります。JDBC自体はAPIですが、データベースごとに異なる実装が存在します。HibernateとToplinkが顕著な例であるJPAと同じです。

于 2012-11-09T14:17:52.463 に答える