Skip to main content

プロダクションから Kafka へのメッセージの送信

InterSystems IRIS 相互運用プロダクションは、Kafka トピックにメッセージを送信する Kafka プロデューサになることができます。組み込みのビジネス・オペレーションを使用する、または Kafka 送信アダプタを使用するカスタム・ビジネス・オペレーションを作成するという、2 つのオプションがあります。プロダクションの外部で使用する API もあります。

ビジネス・オペレーションの使用法

インターシステムズは、カスタム・コードを記述することなく、Kafka トピックにメッセージを送信するために使用できる、組み込みのビジネス・オペレーションを提供しています。このビジネス・オペレーションを使用するには、以下の手順を実行します。

  1. EnsLib.Kafka.BusinessOperation をプロダクションに追加します。"ビジネス・ホストの追加" を参照してください。

  2. "Kafka 設定" の説明に従って、このビジネス・ホストの設定を構成します。

  3. このビジネス・オペレーションに EnsLib.Kafka.MessageOpens in a new tab 要求を送信するように、他のビジネス・ホストを構成します。詳細は、"Kafka メッセージ・クラス" を参照してください。

このビジネス・オペレーションは、EnsLib.Kafka.MessageOpens in a new tab タイプのメッセージを受信すると、そのメッセージのコンテンツをメッセージで指定された Kafka トピックに送信します。

Kafka メッセージ・クラス

EnsLib.Kafka.MessageOpens in a new tab メッセージ・クラスには以下のプロパティがあります。

  • topic は、プロデューサがメッセージを送信する Kafka トピックを定義します。

  • value (文字列) は、Kafka メッセージのコンテンツを定義します。value が設定されている場合、binaryValue は設定しないでください。

  • binaryValue (任意の長さのバイナリ・ストリーム) は、メッセージの長さが %StringOpens in a new tab の最大長を超える場合の、Kafka メッセージのコンテンツを定義します。binaryValue が設定されている場合、value は設定しないでください。

  • key は、Kafka メッセージのオプションのタグを定義します。

アダプタの使用法

組み込みの Kafka ビジネス・オペレーションがニーズを満たさない場合、以下のように Kafka 送信アダプタを直接使用できます。

  1. カスタム・ビジネス・オペレーション・クラスを作成します。

    • このクラスは Ens.BusinessOperationOpens in a new tab を拡張する必要があります。

    • ADAPTER パラメータは EnsLib.Kafka.OutboundAdapterOpens in a new tab である必要があります。

    • このクラスは、メッセージ・マップを定義する必要があります。

      XData MessageMap
      {
      <MapItems>
        <MapItem MessageType="messageclass">
          <Method>methodname</Method>
        </MapItem>
        ...
      </MapItems>
      }
      
    • このクラスは、メッセージ・マップ内のすべてのメソッドを定義する必要があります。これらのメソッドは、メッセージ・ハンドラと呼ばれます。各メッセージ・ハンドラは、以下のシグニチャを持っている必要があります。

      Method Sample(pReq As RequestClass, Output pResp As ResponseClass) As %Status {
      }

      メッセージ・ハンドラは、ビジネス・オペレーションの Adapter プロパティとしてアクセス可能な、アダプタのインスタンス・メソッドを呼び出すことができます。これらのメソッドを呼び出すための一般的な構文は以下のとおりです。

       do ..Adapter.MethodName(arguments)

      Kafka 送信アダプタには、以下のシグニチャを持つ SendMessage() というインスタンス・メソッドが 1 つあります。

      Method SendMessage(message As EnsLib.Kafka.Message) As %Status{
      }
  2. ビジネス・オペレーションをプロダクションに追加します。"ビジネス・ホストの追加" を参照してください。

  3. "Kafka 設定" の説明に従って、このビジネス・ホストの設定を構成します。

  4. このビジネス・オペレーションに要求を送信するように、他のビジネス・ホストを構成します。

関連項目

FeedbackOpens in a new tab