第2章 HA CEP サーバーの実装


高可用性 (HA) CEP サーバーは、Red Hat OpenShift Container Platform 環境で実行します。このサーバーには、必要なすべての Drools ルールと、イベント処理に必要なその他のコードが含まれています。

ソースを準備して、ビルドし、Red Hat OpenShift Container Platform にデプロイします。

または、別のプロセスを使用して、いつでも KJAR サービスを更新できる HA CEP サーバーをデプロイします。このプロセスに関する詳細は、3章Mave リポジトリーを使用した HA CEP サーバーを実装して KJAR サービスを更新する手順 を参照してください。

前提条件

  • oc コマンドラインツールを使用して、管理者権限があるプロジェクトにログインしている。

手順

  1. Red Hat カスタマーポータルの Software Downloads ページから製品配信可能ファイル rhdm-7.7.0-reference-implementation.zip をダウンロードします。
  2. ファイルの内容を展開して、さらに rhdm-7.7.0-openshift-drools-hacep-distribution.zip ファイルを展開します。
  3. openshift-drools-hacep-distribution/sources ディレクトリーに移動します。
  4. sample-hacep-project/sample-hacep-project-kjar ディレクトリー内のサンプルプロジェクトをもとに、サーバーのコードを確認して変更します。複合イベント処理のロジックは、src/main/resources/org/drools/cep サブディレクトリーの DRL ルールで定義します。
  5. 標準の Maven コマンドを使用してプロジェクトをビルドします。

    mvn clean install -DskipTests
    Copy to Clipboard
  6. Red Hat AMQ Streams 向けの OpenShift operator を有効にして、プロジェクトで AMQ Streams (kafka) クラスターを作成します。Red Hat AMQ Streams のインストールに関する情報は、Using AMQ Streams on OpenShift を参照してください。
  7. サーバーの操作に必要な 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
    Copy to Clipboard
  8. アプリケーションが、リーダーの選択に使用する ConfigMap にアクセスできるように、ロールベースのアクセス制御を設定します。springboot ディレクトリーに移動して、以下のコマンドを入力します。

    oc create -f kubernetes/service-account.yaml
    oc create -f kubernetes/role.yaml
    oc create -f kubernetes/role-binding.yaml
    Copy to Clipboard

    Red Hat OpenShift Container Platform のロールベースのアクセス制御に関する詳細は、Red Hat OpenShift Container Platform ドキュメントの RBAC を使用したパーミッションの定義および適用 を参照してください。

  9. oc コマンドを使用して、ユーザー ID とグループ ID の有効な値 (Docker ファイルに設定する必要あり) を検出します。以下のコマンドを入力します。

    oc describe project <projectname>
    Copy to Clipboard

    上記のコマンドでは、<projectname> はプロジェクト名に置き換えます。

    以下の例のように、supplemental-groupsuid-range が表示されている行を検索します。

    openshift.io/sa.scc.supplemental-groups=1000160000/10000
    openshift.io/sa.scc.uid-range=1000160000/10000
    Copy to Clipboard
  10. springboot ディレクトリーで、Dockerfile ファイルを編集します。以下の行を見つけます。

    RUN groupadd -r app -g <id_group> && useradd -u <id_user> -r -g app -m -d /app -s /sbin/nologin -c "App user" app && chmod 755 /app----
    Copy to Clipboard

    この行では、<id_group> は、supplemental-groups の間隔の値に、<id_user>uid-range の間隔の値に置き換えます。

    RUN groupadd -r app -g 1000160001 && useradd -u 1000160001 -r -g app -m -d /app -s /sbin/nologin -c "App user" app && chmod 755 /app
    Copy to Clipboard
  11. springboot ディレクトリーで、以下のコマンドを実行してデプロイメント用のイメージを作成し、OpenShift 環境用に設定したリポジトリーにプッシュします。

    oc new-build --binary --strategy=docker --name openshift-kie-springboot
    oc start-build openshift-kie-springboot --from-dir=. --follow
    Copy to Clipboard
  12. 以下のコマンドを実行して、ビルドしたイメージの名前を検出します。

    oc get is/openshift-kie-springboot -o template --template='{{range .status.tags}}{{range .items}}{{.dockerImageReference}}{{end}}{{end}}'
    Copy to Clipboard
  13. テキストエディターで kubernetes/deployment.yaml ファイルを開きます。
  14. <id_user> は、Docker ファイルに入力したユーザー ID に置き換えます。
  15. 既存のイメージ URL を直前のコマンドの結果に置き換えます。
  16. 文頭に @ の記号がある行の最後にある文字をすべて削除し、その行に :latest を追加します。以下に例を示します。

    image: image-registry.openshift-image-registry.svc:5000/hacep/openshift-kie-springboot:latest
    Copy to Clipboard
  17. ファイルを保存します。
  18. 以下のコマンドを実行してイメージをデプロイします。

    oc apply -f kubernetes/deployment.yaml
    Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat