第 8 章 使用 Jolokia 为 HawtIO 在线设置 Quarkus 应用程序
本节论述了通过 HawtIO 启用 Quarkus 应用程序的监控。它从设置简单示例应用程序中的第一个原则开始。但是,如果已实施了 Quarkus 应用程序,则跳至Example Quarkus Application "上启用 Jolokia Java-Agent。
为方便起见,已实施并发布了一个基于本文档的示例 项目。只需克隆其父存储库并跳至"部署 HawtIO-Enabled Quarkus 应用"到 OpenShift"。
Hawtio 在线组件的解释
- 任何来自用户或 Hawtio Next 的交互都与 HTTP 协议与 Nginx web 服务器通信
- Nginx web 服务器是面向外面的接口,对于外部消费者唯一可见的子组件
发出请求时,Nginx web 服务器被传递给内部网关组件,该组件提供两个不同的目的:
master-Guard Agent
- 定向到目标 Master Cluster API Server (OpenShift)的任何请求都必须通过此组件进行检查,以确保请求的端点 URL 已批准。未批准的 URL (例如,对 secret 或 configmap 的请求)将被拒绝;
Jolokia Agent
- 由于 pod 驻留在 Master 集群中,因此最终对 pod 的 Jolokia 信息的请求也必须以安全的方式进行保护和处理。
- 此代理负责将请求从客户端转换为正确的表单,以在内部传输到目标 pod,并将响应传递回客户端。
8.1. 设置 Quarkus 应用程序示例
对于新的 Quarkus 应用程序,
maven quarkus quick-start
可用,例如:mvn com.redhat.quarkus.platform:quarkus-maven-plugin:<quarkus.platform.version>:create\ -DprojectGroupId=org.hawtio \ -DprojectArtifactId=quarkus-helloworld \ -Dextensions='openshift,camel-quarkus-quartz'
mvn com.redhat.quarkus.platform:quarkus-maven-plugin:<quarkus.platform.version>:create\ -DprojectGroupId=org.hawtio \ -DprojectArtifactId=quarkus-helloworld \ -Dextensions='openshift,camel-quarkus-quartz'
Copy to Clipboard Copied! 注意使用 Camel Quarkus 官方文档中的最新的
quarkus.platform.version
。-
使用
quarkus-maven-plugin
生成项目构建 -
将项目
maven groupId
设置为org.hawtio
,并根据情况进行自定义 -
将项目
maven artifactId
设置为quarkus-helloworld
,并根据情况自定义 使用以下 Quarkus 扩展:
- OpenShift :启用 maven 以部署到本地 OpenShift 集群;
-
camel-quarkus-quartz :启用 Camel 扩展
quartz
以便在示例 Quarkus 应用程序中使用
- 执行 quick-start 为 Quarkus 项目创建构建,然后允许对单个应用程序进行进一步自定义。
-
使用
要构建应用并将其部署到 OpenShift,应在
src/main/resources/application.properties
文件中指定以下属性( 请参阅相关文档)。Set the Docker build strategy
# Set the Docker build strategy quarkus.openshift.build-strategy=docker # Expose the service to create an OpenShift Container Platform route quarkus.openshift.route.expose=true
Copy to Clipboard Copied!