1. ホーム
  2. java

[解決済み] JMS/メッセージキューの実戦的な使い方?[クローズド]

2022-04-16 06:53:29

質問

JMSとApache ActiveMQについて少し読んだだけです。 そして、ここにいる人々はJMSや同様のメッセージキュー技術をどのような実世界での用途に使っているのだろうかと疑問に思っていました。

どのように解決するのですか?

JMS(ActiveMQはJMSブローカーの実装です)は、非同期のリクエスト処理を可能にするメカニズムとして使用することができます。 リクエストが完了するまでに時間がかかる場合や、複数の関係者が実際のリクエストに関心を持つ可能性があるため、このような処理を行いたい場合があります。 また、複数のクライアント(異なる言語で書かれている可能性があります)がJMSを介して情報にアクセスできるようにすることも、これを使用する理由のひとつです。 ActiveMQは、C#/Java/Rubyクライアントからのアクセスを可能にするSTOMPプロトコルを使用することができるので、ここでは良い例です。

実際の例としては、特定の顧客に注文を出すために使用されるウェブアプリケーションがあります。 その注文の一部として(そしてそれをデータベースに保存する)、あなたはいくつかの追加タスクを実行したいと思うかもしれません。

  • サードパーティのバックエンドシステム(SAPなど)に注文を保存する。
  • お客様に注文完了のメールを送る

これを実現するために、あなたのアプリケーションコードは、注文IDを含むメッセージをJMSキューにパブリッシュすることになります。 キューをリッスンしているアプリケーションの一部は、orderId を取得することでイベントに応答し、データベースで注文を検索して、別のサードパーティシステムにその注文を配置することができます。 アプリケーションの別の部分は、orderId を取得し、顧客に確認の電子メールを送信する責任を負うかもしれません。