第 16 章 实施 HA CEP 服务器
高可用性(HA) CEP 服务器在 Red Hat OpenShift Container Platform 环境中运行。它包括所有必要的 dol 规则和其他处理事件所需的代码。
准备源,构建它,然后将其部署到 Red Hat OpenShift Container Platform 上。
或者,使用不同的流程来部署 HA CEP 服务器,您可以在其中随时更新 KJAR 服务。有关此过程的步骤,请参考 第 17 章 使用 Maven 存储库实施 HA CEP 服务器以更新 KJAR 服务。
先决条件
-
您可以使用
oc
命令行工具以管理员特权登录到项目。
流程
-
从红帽客户门户的 软件下载 页面下载
rhpam-7.11.0-reference-ement-zip
产品。 -
提取文件的内容,然后解压缩
rhpam-7.11.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 的详情,请参考在 OpenShift 中使用 AMQ Streams。
要创建服务器操作所需的 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.yaml
有关在 Red Hat OpenShift Container Platform 中配置基于角色的访问控制的更多信息,请参阅 Red Hat OpenShift Container Platform 产品文档中的 使用 RBAC 定义和应用权限。
在
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