第21章 ビジネスプロセスの Kafka メッセージ
Apache Kafka をベースとする Red Hat AMQ Streams はストリーミングプラットフォームです。これはメッセージブローカーとして機能し、ソフトウェア環境のアプリケーション間でトピックにソートされるメッセージを渡します。
Red Hat Process Automation Manager を使用して、以下の方法で Kafka メッセージを送受信するビジネスプロセスを作成できます。
-
タイプ
message
の開始イベント、中間キャッチイベント、または境界イベント (ヒューマンタスクに登録される) を作成します。KIE Server は、メッセージに定義された Kafka トピックに自動的にサブスクライブします。メッセージがイベントをトリガーされます。イベントノードはメッセージのコンシューマーとして機能し、メッセージのコンテンツをプロセス内の後続のノードに渡すことができます。 -
message
タイプの終了イベントまたは中間出力イベントを作成します。プロセスがイベントをトリガーすると、KIE Server はメッセージに定義されたトピックに Kafka メッセージを送信します。メッセージには、イベントで設定されるデータが含まれます。イベントノードはメッセージのプロデューサーとして機能します。 -
KafkaPublishMessages
カスタムタスクをプロセスに追加します。このタスクには KIE Server の Kafka 機能は必要ありませんが、メッセージイベントよりも設定が複雑になる可能性があります。 - トランザクションのコミット時に完了したすべてのプロセス、ケース、およびタスクに関する Kafka メッセージを生成するようにサービスおよび KIE Server を設定します。
21.1. Kafka メッセージを受け取るイベントの作成
Business Central でビジネスプロセスを作成したら、Kafka メッセージを受け取るイベントを作成できます。
このイベントは、メッセージが設定済みのトピックに到達するたびに発生します。このメッセージは、事前定義済みのデータオブジェクトに一致するデータが含まれることが想定されます。プロセスエンジンはメッセージを解析し、イベントの出力として提供します。
手順
- Business Central でビジネスプロセスが含まれるプロジェクトを開きます。
- メッセージに含まれるデータを定義するデータオブジェクトを作成します。データオブジェクトの作成方法は、BPMN モデルを使用したビジネスプロセスの作成 を参照してください。
- ビジネスプロセスを選択し、ビジネスプロセスデザイナーを開きます。
-
タイプ
message
の開始イベント、中間キャッチイベント、または境界イベント (ヒューマンタスクに登録される) を追加します。 - イベントのプロパティーを開きます。
Message フィールドで New を選択し、メッセージの名前を入力します。この名前は、イベントが Kafka メッセージを受け取るトピックの名前と同じにする必要があります。同じにしない場合は、KIE Server の
org.kie.server.jbpm-kafka.ext.topics.broker-topic-name
システムプロパティーに定義する必要があります。org.kie.server.jbpm-kafka.ext.topics.*
システムプロパティーを使用してトピック名を定義する方法は、22章プロセスから Kafka メッセージを送受信するための KIE Server の設定 を参照してください。- 出力データ項目を追加します。タイプとして作成したデータオブジェクトを選択します。
- ビジネスプロセスを保存します。
Kafka メッセージイベントが新しいプロセスインスタンスを開始する場合、Kafka コンシューマー拡張は Kafka メッセージに関連するユーザーの ID を受信しないため、インスタンスの initiator
フィールドはデフォルトで unknown
に設定されます。
次のステップ
プロセスの実行時に Red Hat AMQ Streams 統合を有効にするには、22章プロセスから Kafka メッセージを送受信するための KIE Server の設定 の説明に従い KIE Server を設定する必要があります。