第2章 HA CEP サーバーの実装
高可用性 (HA) CEP サーバーは、Red Hat OpenShift Container Platform 環境で実行します。このサーバーには、必要なすべての Drools ルールと、イベント処理に必要なその他のコードが含まれています。
ソースを準備して、ビルドし、Red Hat OpenShift Container Platform にデプロイする必要がある。
前提条件
-
ocコマンドラインツールを使用して、管理者権限があるプロジェクトにログインしている。
手順
-
Red Hat カスタマーポータルの Software Downloads ページから製品配信可能ファイル
rhdm-7.6.0-reference-implementation.zipをダウンロードします。 -
ファイルの内容を展開して、さらに
rhdm-7.6.0-openshift-drools-hacep-distribution.zipファイルを展開します。 -
openshift-drools-hacep-distribution/sourcesディレクトリーに移動します。 -
sample-hacep-project/sample-hacep-project-kjarディレクトリー内のサンプルプロジェクトをもとに、サーバーのコードを確認して変更します。複合イベント処理のロジックは、src/main/resources/org.drools.cepサブディレクトリーの DRL ルールで定義します。 標準の Maven コマンドを使用してプロジェクトをビルドします。
mvn clean install -DskipTests- Red Hat AMQ Streams 向けの OpenShift operator を有効にして、プロジェクトで AMQ Streams (kafka) クラスターを作成します。Red Hat AMQ Streams のインストールに関する情報は、Using AMQ Streams on OpenShift を参照してください。
サーバーの操作に必要な kafka のトピックを作成するには、
openshift-drools-hacep-distribution/sourcesディレクトリーで、以下のコマンドを実行します。oc apply -f kafka-topics/control.yaml oc apply -f kafka-topics/events.yaml oc apply -f kafka-topics/kiesessioninfos.yaml oc apply -f kafka-topics/snapshot.yamlアプリケーションが、リーダーの選択に使用する ConfigMap にアクセスできるように、ロールベースのアクセス制御を設定する必要があります。
springbootディレクトリーに移動して、以下のコマンドを入力します。oc create -f kubernetes/service-account.yaml oc create -f kubernetes/role.yaml oc create -f kubernetes/role-binding.yamlRed Hat OpenShift Container Platform のロールベースのアクセス制御の設定に関する詳細は、Red Hat OpenShift Container Platform 製品ドキュメントの Using RBAC to define and apply permissions を参照してください。
springbootディレクトリーで、以下のコマンドを実行してデプロイメント用のイメージを作成し、OpenShift 環境用に設定したリポジトリーにプッシュします。oc new-build --binary --strategy=docker --name openshift-kie-springboot oc start-build openshift-kie-springboot --from-dir=. --follow以下のコマンドを実行して、ビルドしたイメージの名前を検出します。
oc get is/openshift-kie-springboot -o template --template='{{range .status.tags}}{{range .items}}{{.dockerImageReference}}{{end}}{{end}}'-
テキストエディターで
kubernetes/deployment.yamlファイルを開きます。 - 既存のイメージ URL を直前のコマンドの結果に置き換えます。
文頭に
@の記号がある行の最後にある文字をすべて削除し、その行に:latestを追加します。以下に例を示します。image: image-registry.openshift-image-registry.svc:5000/hacep/openshift-kie-springboot:latest- ファイルを保存します。
以下のコマンドを実行してイメージをデプロイします。
oc apply -f kubernetes/deployment.yaml