9.4. OpenShift での Camel Spring Boot XA クイックスタートの実行
この手順では、実行中の単一ノードの OpenShift クラスターでクイックスタートを実行する方法を説明します。
手順
Camel Spring Boot XA プロジェクトをダウンロードします。
git clone --branch spring-boot-camel-xa-7.8.0.fuse-sb2-780031-redhat-00001 https://github.com/jboss-fuse/spring-boot-camel-xa
spring-boot-camel-xa
ディレクトリーに移動し、以下のコマンドを実行します。mvn clean install
OpenShift サーバーにログインします。
oc login -u developer -p developer
test
という名前のプロジェクト namespace が存在しない場合は作成します。oc new-project test
test
プロジェクト namespace がすでに存在する場合は、以下のコマンドを使用して切り替えます。oc project test
依存関係をインストールします。
ユーザー名
theuser
とパスワードThepassword1!
を使用して、postgresql
をインストールします。oc new-app --param=POSTGRESQL_USER=theuser --param=POSTGRESQL_PASSWORD='Thepassword1!' --env=POSTGRESQL_MAX_PREPARED_TRANSACTIONS=100 --template=postgresql-persistent
ユーザー名
theuser
とパスワードThepassword1!
を使用して、A-MQ
ブローカーをインストールします。oc new-app --param=MQ_USERNAME=theuser --param=MQ_PASSWORD='Thepassword1!' --template=amq63-persistent
トランザクションログの永続ボリュームクレームを作成します。
oc create -f persistent-volume-claim.yml
クイックスタートをビルドおよびでデプロイします。
mvn fabric8:deploy -P openshift
レプリカの数を必要に合わせてスケールアップします。
oc scale statefulset spring-boot-camel-xa --replicas 3
注記: Pod 名はトランザクションマネージャー ID として使用されます (spring.jta.transaction-manager-id プロパティー)。また、現在の実装によってトランザクションマネージャー ID の長さも制限されます。よって、以下の点に注意してください。
- StatefulSet の名前はトランザクションシステムの識別子であるため、変更しないでください。
- Pod の名前が 23 文字以下になるように StatefulSet の名前を付ける必要があります。Pod 名は、<statefulset-name>-0, <statefulset-name>-1 のような慣例を使用して、OpenShift によって作成されます。Narayana はできる限り、同じ ID を持つリカバリーマネージャーが複数存在しないようにするため、Pod 名が制限よりも長い場合は、最後の 23 バイトがトランザクション ID として適用されます (ーなどの一部の文字の削除後)。
クイックスタートが実行されたら、以下のコマンドを使用してベースサービス URL を取得します。
NARAYANA_HOST=$(oc get route spring-boot-camel-xa -o jsonpath={.spec.host})