第10章 JMS メッセージブローカーで監査データの複製
KIE Server 監査データを Java Message Service (JMS) メッセージブローカー (ActiveMQ、Artemis など) に複製してから、外部データベーススキーマにデータをダンプし、アプリケーションスキーマから監査データを削除して Spring Boot アプリケーションのパフォーマンスを向上することができます。
メッセージブローカーのデータを複製するようにアプリケーションを設定すると、KIE Server でイベントが発生したときにそのイベントの記録は KIE Server データベーススキーマに保存され、メッセージブローカーに送信されます。その後、外部サービスを設定して、メッセージブローカーデータをアプリケーションのデータベーススキーマの正確なレプリカに使用できます。このデータは、イベントが KIE Server によって生成されるたびに、メッセージブローカーおよび外部データベースに追加されます。
監査データのみがメッセージブローカーに保存されます。他のデータはレプリケートされません。
前提条件
- 既存の Red Hat Process Automation Manager Spring Boot プロジェクトがある。
手順
-
テキストエディターで Spring Boot アプリケーションの
pom.xml
ファイルを開きます。 KIE Server Spring Boot 監査依存関係を
pom.xml
ファイルに追加します。<dependency> <groupId>org.kie</groupId> <artifactId>kie-server-spring-boot-autoconfiguration-audit-replication</artifactId> <version>${version.org.kie}</version> </dependency>
JMS クライアントの依存関係を追加します。以下の例では、Advanced Message Queuing Protocol (AMQP) 依存関係を追加します。
<dependency> <groupId>org.amqphub.spring</groupId> <artifactId>amqp-10-jms-spring-boot-starter</artifactId> <version>2.2.6</version> </dependency>
JMS プールの依存関係を追加します。
<dependency> <groupId>org.messaginghub</groupId> <artifactId>pooled-jms</artifactId> </dependency>
KIE Server 監査レプリケーションがキューを使用するように設定するには、以下のタスクを完了します。
以下の行を、Spring Boot アプリケーションの
application.properties
ファイルに追加します。kieserver.audit-replication.producer=true kieserver.audit-replication.queue=audit-queue
メッセージブローカークライアントに必要なプロパティーを追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、
<JMS_HOST_PORT>
はブローカーがリッスンするポートで、<USERNAME>
および<PASSWORD
はブローカーのログイン認証情報になります。amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT> amqphub.amqp10jms.username=<USERNAME> amqphub.amqp10jms.password=<PASSWORD> amqphub.amqp10jms.pool.enabled=true
以下の行を、メッセージブローカーデータを使用するサービスの
application.properties
ファイルに追加します。kieserver.audit-replication.consumer=true kieserver.audit-replication.queue=audit-queue
メッセージブローカークライアントに必要なプロパティーを、メッセージブローカーデータを使用するサービスの
application.properties
ファイルに追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、<JMS_HOST_PORT>
はメッセージブローカーがリッスンするポートで、<USERNAME>
および<PASSWORD>
はメッセージブローカーのログイン認証情報になります。amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT> amqphub.amqp10jms.username=<USERNAME> amqphub.amqp10jms.password=<PASSWORD> amqphub.amqp10jms.pool.enabled=true
KIE Server 監査レプリケーションがトピックを使用するように設定するには、以下のタスクを実行します。
以下の行を、Spring Boot アプリケーションの
application.properties
ファイルに追加します。kieserver.audit-replication.producer=true kieserver.audit-replication.topic=audit-topic
メッセージブローカークライアントに必要なプロパティーを、メッセージブローカーデータを使用するサービスの
application.properties
ファイルに追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、<JMS_HOST_PORT>
はメッセージブローカーがリッスンするポートで、<USERNAME>
および<PASSWORD
はメッセージブローカーのログイン認証情報になります。spring.jms.pub-sub-domain=true amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT> amqphub.amqp10jms.username=<USERNAME> amqphub.amqp10jms.password=<PASSWORD> amqphub.amqp10jms.pool.enabled=true
以下の行を、メッセージブローカーデータを使用するサービスの
application.properties
ファイルに追加します。kieserver.audit-replication.consumer=true kieserver.audit-replication.topic=audit-topic::jbpm kieserver.audit-replication.topic.subscriber=jbpm spring.jms.pub-sub-domain=true
メッセージブローカークライアントに必要なプロパティーを、メッセージブローカーデータを使用するサービスの
application.properties
ファイルに追加します。以下の例は、AMPQ に KIE Server を設定する方法を示しています。ここで、<JMS_HOST_PORT>
はメッセージブローカーがリッスンするポートで、<USERNAME>
および<PASSWORD>
はメッセージブローカーのログイン認証情報になります。amqphub.amqp10jms.remote-url=amqp://<JMS_HOST_PORT> amqphub.amqp10jms.username=<USERNAME> amqphub.amqp10jms.password=<PASSWORD> amqphub.amqp10jms.pool.enabled=true amqphub.amqp10jms.clientId=jbpm
オプション: レプリケートされたデータが含まれる KIE Server を読み取り専用に設定するには、
application.properties
ファイルのorg.kie.server.rest.mode.readonly
プロパティーをtrue
に設定します。org.kie.server.rest.mode.readonly=true
10.1. Spring Boot JMS 監査レプリケーションパラメーター
以下の表は、Spring Boot で Red Hat Process Automation Manager アプリケーションの JMS 監査レプリケーションを設定するために使用するパラメーターを説明しています。
パラメーター | 値 | 説明 |
---|---|---|
|
| ビジネスアプリケーションが、JMS メッセージを複製してキューまたはトピックのいずれかに送信するプロデューサーとして動作するかどうかを指定します。 |
|
| ビジネスアプリケーションが、キューまたはトピックのいずれかから JMS メッセージを受信するコンシューマーとして動作するかどうかを指定します。 |
|
| メッセージを送信または消費する JMS キューの名前。 |
|
| メッセージを送信または消費する JMS トピックの名前。 |
|
| トピックサブスクライバーの名前。 |
|
| ビジネスアプリケーションの読み取り専用モードを指定します。 |