第4章 HA CEP クライアントの作成

CEP クライアントコードを HA CEP サーバーイメージと通信できるように、適応する必要があります。お使いのクライアントコード向けの参照実装に含まれるサンプルプロジェクトを使用してください。また、OpenShift 環境内外を問わず、クライアントコードを実行できます。

Procedure

  1. Red Hat カスタマーポータルの Software Downloads ページから rhdm-7.8.0-reference-implementation.zip 製品配信可能ファイルをダウンロードします。
  2. ファイルの内容を展開して、さらに rhdm-7.8.0-openshift-drools-hacep-distribution.zip ファイルを展開します。
  3. openshift-drools-hacep-distribution/sources ディレクトリーに移動します。
  4. sample-hacep-project/sample-hacep-project-client ディレクトリーのサンプルプロジェクトをもとにクライアントコードをレビューし、変更します。このコードが 5章HA CEP クライアントおよびサーバーコードの要件 に記載の追加要件を満たしていることを確認します。
  5. 3章Mave リポジトリーを使用した HA CEP サーバーを実装して KJAR サービスを更新する手順 で説明した方法を使用する実装で KJAR バージョンを更新するには、以下のコードのように、UpdateKJarGAV 呼び出しをクライアントに追加します。

            TopicsConfig envConfig = TopicsConfig.getDefaultTopicsConfig();
            Properties props = getProperties();
            try (RemoteStreamingKieSession producer = RemoteStreamingKieSession.create(props, envConfig)){
                producer.updateKJarGAV("org.kie:fake-jar:0.1");
            }

    この呼び出しの実行時に、GAV を指定した KJAR が Maven リポジトリーで利用できるようにしてください。

  6. sample-hacep-project/sample-hacep-project-client ディレクトリーで、パスワードに password と指定してキーストアを生成します。以下のコマンドを実行します。

    keytool -genkeypair -keyalg RSA -keystore src/main/resources/keystore.jks
  7. OpenShift 環境から HTTPS 証明書を展開して、キーストアーに追加します。以下のコマンドを実行します。

    oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > src/main/resources/ca.crt
    keytool -import -trustcacerts -alias root -file src/main/resources/ca.crt -keystore src/main/resources/keystore.jks -storepass password -noprompt
  8. プロジェクトの src/main/resources サブディレクトリーで、configuration.properties ファイルを開き、<bootstrap-hostname> を Kafka サーバーのルートが提供するアドレスに置き換えます。
  9. 標準の Maven コマンドを使用してプロジェクトをビルドします。

    mvn clean install
  10. sample-hacep-project-client プロジェクトのディレクトリーに移動して、以下のコマンドを入力し、クライアントを実行します。

    mvn exec:java -Dexec.mainClass="org.kie.hacep.sample.client.ClientProducerDemo"

    このコマンドは、ClientProducerDemo クラスの main メソッドを実行します。