第23章 トランザクションのコミット時に Kafka メッセージを生成するようにサービスおよび KIE Server を設定する

KIE Server は、プロセス、ケース、またはタスクが完了したときに、すべてのイベントに関する Kafka メッセージを生成するように設定できます。トランザクションをコミットすると、KIE Server はメッセージを送信します。

この機能は、ビジネスプロセスまたはケースと合わせて使用できます。プロセス設計で何も変更する必要はありません。

この設定は、SpringBoot を使用してプロセスサービスを実行する場合にも利用できます。

デフォルトでは、KIE Server は以下のトピックでメッセージを公開します。

  • 完了したプロセスに関するメッセージ用の jbpm-processes-events
  • 完了したタスクに関するメッセージ用の jbpm-tasks-events
  • 完了したケースに関するメッセージ用の jbpm-cases-events

トピック名を設定できます。

公開されているメッセージは、CloudEvents specification バージョン 1.0 に準拠しています。各メッセージには以下のフィールドが含まれます。

  • Id: イベントの一意識別子
  • type: イベントのタイプ (プロセス、タスク、またはケース)
  • source: URI となるイベントソース
  • time: デフォルトでは、RFC3339 形式のイベントのタイムスタンプ
  • data: JSON 形式で表示されるプロセス、ケース、またはタスクに関する情報

手順

  1. Kafka メッセージを生成するには、以下のいずれかの手順を実行します。

    1. KIE Server を Red Hat JBoss EAP または別のアプリケーションサーバーにデプロイした場合:

      1. Red Hat カスタマーポータルの Software Downloads ページから製品配信可能ファイル rhpam-7.11.0-maven-repository.zip をダウンロードします。
      2. ファイルの内容を展開します。
      3. maven-repository/org/jbpm/jbpm-event-emitters-kafka/7.52.0.Final-redhat-00007/jbpm-event-emitters-kafka-7.52.0.Final-redhat-00007.jar ファイルをアプリケーションサーバーの deployments/kie-server.war/WEB-INF/lib サブディレクトリーにコピーします。
    2. SpringBoot を使用してアプリケーションをデプロイした場合は、サービスの pom.xml ファイルの <dependencies> リストに以下の行を追加します。

      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-event-emitters-kafka</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
  2. 必要に応じて、KIE Server の以下のシステムプロパティーのいずれかを設定します。

    • org.kie.jbpm.event.emitters.kafka.bootstrap.servers: Kafka ブローカーのホストおよびポート。デフォルト値は localhost:9092 です。複数の host:port ペアのコンマ区切りリストを使用できます。
    • org.kie.jbpm.event.emitters.kafka.date_format: メッセージの time フィールドのタイムスタンプ形式。デフォルト値は yyyy-MM-dd'T'HH:mm:ss.SSSZ です。
    • org.kie.jbpm.event.emitters.kafka.topic.processes: プロセスイベントメッセージのトピック名。デフォルト値は jbpm-processes-events です。
    • org.kie.jbpm.event.emitters.kafka.topic.cases: プロセスイベントメッセージのトピック名。デフォルト値は jbpm-cases-events です。
    • org.kie.jbpm.event.emitters.kafka.topic.tasks: プロセスイベントメッセージのトピック名。デフォルト値は jbpm-processes-tasks です。
    • org.kie.jbpm.event.emitters.kafka.client.id: リクエストの実行時にサーバーに渡す ID 文字列。サーバーは、この文字列をロギングに使用します。