9.4. 在 OpenShift 中运行 Camel Spring Boot XA 快速入门

此流程演示了如何在正在运行的单一节点 OpenShift 集群中运行快速入门。

流程

  1. 下载 Camel Spring Boot XA 项目。

    git clone --branch spring-boot-camel-xa-7.11.1.fuse-sb2-7_11_1-00022-redhat-00002 https://github.com/jboss-fuse/spring-boot-camel-xa
  2. 进入 spring-boot-camel-xa 目录并运行以下命令。

    mvn clean install
  3. 登录 OpenShift 服务器。

    oc login -u developer -p developer
  4. 创建名为 test 的新项目命名空间(假设它尚不存在)。

    oc new-project test

    如果 test 项目命名空间已存在,请切换到它。

    oc project test
  5. 安装依赖项。

    • 使用用户名 和密码 Thepassword1! 来安装 postgresql

      oc new-app --param=POSTGRESQL_USER=theuser --param=POSTGRESQL_PASSWORD='Thepassword1!' --env=POSTGRESQL_MAX_PREPARED_TRANSACTIONS=100 --template=postgresql-persistent
    • 使用用户名 和密码 Thepassword1! 来安装 A-MQ 代理。

      oc new-app --param=MQ_USERNAME=theuser --param=MQ_PASSWORD='Thepassword1!' --template=amq63-persistent
  6. 为事务日志创建持久性卷声明。

    oc create -f persistent-volume-claim.yml
  7. 构建和部署您的快速入门。

    mvn oc:deploy -Popenshift
  8. 将其扩展至所需的副本数。

    oc scale statefulset spring-boot-camel-xa --replicas 3

    注:pod 名称用作事务管理器 ID(spring.jta.transaction-manager-id 属性)。当前实施还限制了事务管理器 ID 的长度。请注意:

    • StatefulSet 的名称是事务系统的标识符,因此不能更改。
    • 您应该将 StatefulSet 命名,以便其所有 pod 名称长度小于或等于 23 个字符。OpenShift 使用惯例创建 Pod 名称:<statefulset-name>-0, <statefulset-name>-1 等等。Narayana 最好避免有多个带有相同 ID 的恢复管理器,因此当 pod 名称大于限制时,最后的 23 字节被取为事务管理器 ID(在剥离一些字符后)。
  9. 快速入门运行后,使用以下命令获取基础服务 URL。

    NARAYANA_HOST=$(oc get route spring-boot-camel-xa -o jsonpath={.spec.host})