1

顧客は、自分のアプリケーションとアプリケーションとの間でActiveMQを介してデータを交換したいので、両方のアプリケーションが通信するために使用する必要がある設定とプロパティを説明するInterface Specification Documentを作成します。お客様が使用するプログラミング言語やAPIはわかりません。仕様が不完全な場合、期待していない設定が暗黙的に使用される可能性があります。インターフェイス仕様書には、どのActiveMQプロパティ/設定を記述する必要がありますか?

どのような設定を両側で同じにする必要があり、どの設定を各アプリケーションが独自に決定できるのか不思議です。これは私がこれまで持っているものです。

は、文書で指定する必要があります。

  • コネクタタイプ(openwire、ストンプ、...)
  • コネクタの設定(ホスト名ブローカーを実行すると、TCPポート、ユーザー名、パスワード)
  • メッセージタイプ(TextMessageの、BytesMessageは...)テキストペイロードの
  • ペイロードの詳細(XSDを持つXMLスキーマとJSON、...)
  • メッセージのエンコード(UTF-8)、
  • 個の
  • 使用キュー、またはトピック、または耐久性のあるトピック
  • キュー名
    • を使用している要求/応答プロトコルのいずれかの一種であるセレクタが正しいメッセージを取得するために使用されていると(要求と応答のための単一のキューを使用します)、又は要求と応答
  • メッセージの有効期限
  • を関連付けるために使用される相関IDを転送する方法の要求と応答
  • に別々のキューを使用

文書で指定されていない必要があります:

  • のActiveMQブローカーのバージョン(すべてのバージョンに互換性がある、右?)
  • メッセージ圧縮(それは透明でなければならない?)

私は何を取りこぼしたか? 2つのアプリケーションがActiveMQ経由で通信できることを保証するために、そのような文書にはどのようなことを述べるべきですか?

答えて

1

私は何を逃したのですか?

メッセージヘッダーがありませんでした。

  1. Built-in (JMS) headers
  2. カスタムヘッダー内蔵のヘッダの

例には、お使いのインタフェース定義、いくつかのケースではなどのJMSMessageID、JMSXGroupID、などのことです。これらは、2つのカテゴリに分けることができますこれらの値を設定するかどうか、どのように設定するかについての詳細を含める必要があります。たとえば、メッセージをグループ化する必要がある場合、定義を使用するメッセージプロデューサまたはコンシューマは、これを認識する必要があります。

同様に、メッセージに添付されたカスタムヘッダー(通常の用途ではオーダーメイド、発信元システム識別、承認トークンなど)がインターフェイス定義の一部である必要がある場合。彼らは必須またはオプションされている場合

  • メッセージボディのためのスキーマ定義、および
  • 任意のヘッダ+:

    実際に、私はインタフェース定義は2つのだけのものを含める必要があると主張するだろう

上記の他にも、配備や管理上の問題があります。

たとえば、コンシューマまたはプロデューサがキューまたはトピックに接続するかどうかは、管理上の問題であり、インターフェイスの問題ではありません。キュー/トピックのアドレスは、配備の問題であり、インタフェースの問題ではありません。

関連する問題