21.3. Kafka メッセージを送信するカスタムタスクの追加
KafkaPublishMessages
カスタムタスクをプロセスに追加できます。このタスクは Kafka メッセージを送信します。KIE Server の Kafka 機能を使用しないため、KIE Server で実行されないプロセスでこのタスクを使用できます。ただし、このタスクは、他の Red Hat AMQ Streams 統合オプションよりも設定が複雑になる可能性があります。
手順
- Business Central 管理設定メニューで管理ユーザーとして Custom Tasks Administration を選択します。
- KafkaPublishMessages が On に設定されていることを確認します。
-
Business Central で Menu
Design Projects の順に選択し、スペース名とプロジェクト名をクリックします。 -
Settings
Custom Tasks タブを選択します。 - KafkaPublishMessages 行で Install をクリックします。
必要に応じて、以下の情報を入力します。フィールドを空白のままにすると、プロセスエンジンはこれらのフィールドにデフォルト値を使用します。
-
Bootstrap Servers: Kafka ブローカーのホストおよびポート。複数の host:port ペアのコンマ区切りリストを使用できます。デフォルト値は
localhost:9092
です。 - Client ID: 要求の実行時にブローカーに渡す識別子文字列。Red Hat AMQ Streams では、この文字列を使用してロギングを行います。デフォルト値は
-
Key Serializer クラス: キーシリアライザーを提供するクラス。デフォルト値は
org.apache.kafka.common.serialization.StringSerializer
です。独自のカスタムシリアライザークラスを使用する場合は他の値を入力できます。 Value Serializer クラス: 値シリアライザーを提供するクラス。デフォルト値は
org.apache.kafka.common.serialization.StringSerializer
です。独自のカスタムシリアライザークラスを使用する場合は他の値を入力できます。これらのフィールドのいずれかで、
env[property]
値を入力します。この場合、プロセスエンジンはランタイム時にシステムプロパティーから設定を読み取ります。たとえば、Client ID をenv[application.client.id]
に設定し、プロセスサービスを実行する前に、application.client.id
システムプロパティーにクライアント ID の値を設定します。
-
Bootstrap Servers: Kafka ブローカーのホストおよびポート。複数の host:port ペアのコンマ区切りリストを使用できます。デフォルト値は
カスタムシリアライザークラスの名前を入力したら、以下の追加の設定を実行します。
-
Settings
Deployments Work Item Handlers タブを選択します。 KafkaPublishMessages
行で、Value
フィールドを変更してclassLoader
パラメーターを追加します。たとえば、このフィールドの最初の値は以下の文字列になります。new org.jbpm.process.workitem.kafka.KafkaWorkItemHandler("127.0.0.1:9092", "jbpm", "com.myspace.test.MyCustomSerializer", "com.myspace.test.MyCustomSerializer")
この例では、値を以下の文字列に変更します。
new org.jbpm.process.workitem.kafka.KafkaWorkItemHandler("127.0.0.1:9092", "jbpm", "com.myspace.test.MyCustomSerializer", "com.myspace.test.MyCustomSerializer", classLoader)
-
Settings
- Assets タブを選択します。
- ビジネスプロセスを選択し、ビジネスプロセスデザイナーを開きます。
-
BPMN モデラーパレットの Custom Tasks で利用可能な
KafkaPublishMessages
カスタムタスクを追加します。 - カスタムタスクのプロパティーで、データの割り当てを開きます。
- Key、Topic、および Value 入力を割り当て、メッセージを定義します。
次のステップ
カスタムシリアライザークラスを設定している場合は、このクラスをビジネスアプリケーションに指定する必要があります。ビジネスアプリケーションにカスタムクラスを指定する方法は、24章Business Central でのビジネスアプリケーションへのカスタムクラス指定 を参照してください。