Red Hat Camel K is deprecated
Red Hat Camel K is deprecated and the End of Life date for this product is June 30, 2025. For help migrating to the current go-to solution, Red Hat build of Apache Camel, see the Migration Guide.第 5 章 针对 Kafka 验证 Camel K
您可以针对 Apache Kafka 验证 Camel K。
以下示例演示了如何设置 Kafka 主题,并在简单的 Producer/Consumer 模式集成中使用它。
5.1. 设置 Kafka
要设置 Kafka,您必须:
- 安装所需的 OpenShift operator
- 创建 Kafka 实例
- 创建 Kafka 主题
使用下面提到的红帽产品设置 Kafka:
- Red Hat Advanced Message Queuing (AMQ)流 - 一个自我管理的 Apache Kafka 产品。AMQ Streams 基于开源 Strimzi,并包含在 Red Hat Integration 中。AMQ Streams 是一个基于 Apache Kafka 的分布式可扩展流平台,其中包括发布/订阅消息传递代理。Kafka Connect 提供了一个框架,用于将基于 Kafka 的系统与外部系统集成。使用 Kafka Connect,您可以配置源和接收器连接器,将数据从外部系统流传输到 Kafka 代理中的数据。
5.1.1. 使用 AMQ 流设置 Kafka
AMQ Streams 简化了在 OpenShift 集群中运行 Apache Kafka 的过程。
5.1.1.1. 为 AMQ Streams 准备 OpenShift 集群
要使用 Camel K 或 Kamelets 和 Red Hat AMQ Streams,您必须安装以下 operator 和工具:
- Red Hat Integration - AMQ Streams operator - 管理 Openshift 集群和 AMQ Streams for Apache Kafka 实例之间的通信。
- Red Hat Integration - Camel K operator - 安装和管理 Camel K - 在 OpenShift 上的云中原生运行的轻量级集成框架。
- Camel K CLI 工具 - 允许您访问所有 Camel K 功能。
先决条件
- 熟悉 Apache Kafka 概念。
- 您可以使用正确的访问级别访问 OpenShift 4.6 (或更新版本)集群、创建项目和安装 Operator 的功能,以及在本地系统上安装 OpenShift 和 Camel K CLI 的功能。
-
已安装 OpenShift CLI 工具(
oc
),以便可以在命令行中与 OpenShift 集群交互。
流程
使用 AMQ Streams 设置 Kafka:
- 登录您的 OpenShift 集群的 Web 控制台。
- 创建或打开您计划在其中创建集成的项目,如 my-camel-k-kafka。
- 安装 Camel K operator 和 Camel K CLI,如 安装 Camel K 所述。
安装 AMQ 流 Operator:
- 从任何项目中,选择 Operators > OperatorHub。
- 在 Filter by Keyword 字段中,键入 AMQ Streams。
点 Red Hat Integration - AMQ Streams 卡,然后点 Install。
此时会打开 Install Operator 页面。
- 接受默认值,然后点 Install。
- 选择 Operators > Installed Operators 来验证是否安装了 Camel K 和 AMQ Streams operator。
5.1.1.2. 使用 AMQ Streams 设置 Kafka 主题
Kafka 主题为 Kafka 实例中数据存储提供目的地。在发送数据前,您必须设置 Kafka 主题。
先决条件
- 您可以访问 OpenShift 集群。
- 已安装 Red Hat Integration - Camel K 和 Red Hat Integration - AMQ Streams operator,如 准备 OpenShift 集群 中所述。
-
已安装 OpenShift CLI (
oc
)和 Camel K CLI (kamel
)。
流程
使用 AMQ Streams 设置 Kafka 主题:
- 登录您的 OpenShift 集群的 Web 控制台。
- 选择 Projects,然后点安装 Red Hat Integration - AMQ Streams operator 的项目。例如,单击 my-camel-k-kafka 项目。
- 选择 Operators > Installed Operators,然后点 Red Hat Integration - AMQ Streams。
创建 Kafka 集群:
- 在 Kafka 下,点 Create instance。
- 为集群输入一个名称,如 kafka-test。
接受其他默认值,然后单击 Create。
创建 Kafka 实例的过程可能需要几分钟时间完成。
当状态就绪时,继续下一步。
创建 Kafka 主题:
- 选择 Operators > Installed Operators,然后点 Red Hat Integration - AMQ Streams。
- 在 Kafka 主题 下,点 Create Kafka Topic。
- 输入主题的名称,如 test-topic。
- 接受其他默认值,然后单击 Create。
5.1.2. 使用 SASL/Plain 身份验证方法创建 secret
您可以使用您获取的凭证(Kafka bootstrap URL、服务帐户 ID 和服务帐户 secret)创建 secret。
流程
编辑
application.properties
文件并添加 Kafka 凭证。application.properties 文件
camel.component.kafka.brokers = <YOUR-KAFKA-BOOTSTRAP-URL-HERE> camel.component.kafka.security-protocol = SASL_SSL camel.component.kafka.sasl-mechanism = PLAIN camel.component.kafka.sasl-jaas-config=org.apache.kafka.common.security.plain.PlainLoginModule required username='<YOUR-SERVICE-ACCOUNT-ID-HERE>' password='<YOUR-SERVICE-ACCOUNT-SECRET-HERE>'; consumer.topic=<TOPIC-NAME> producer.topic=<TOPIC-NAME>
运行以下命令,创建一个在
application.properties
文件中包含敏感属性的 secret:oc create secret generic kafka-props --from-file application.properties
运行 Camel K 集成时,您可以使用此 secret。
5.1.3. 使用 SASL/OAUTHBearer 身份验证方法创建 secret
您可以使用您获取的凭证(Kafka bootstrap URL、服务帐户 ID 和服务帐户 secret)创建 secret。
流程
编辑
application-oauth.properties
文件并添加 Kafka 凭证。application-oauth.properties file
camel.component.kafka.brokers = <YOUR-KAFKA-BOOTSTRAP-URL-HERE> camel.component.kafka.security-protocol = SASL_SSL camel.component.kafka.sasl-mechanism = OAUTHBEARER camel.component.kafka.sasl-jaas-config = org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \ oauth.client.id='<YOUR-SERVICE-ACCOUNT-ID-HERE>' \ oauth.client.secret='<YOUR-SERVICE-ACCOUNT-SECRET-HERE>' \ oauth.token.endpoint.uri="https://identity.api.openshift.com/auth/realms/rhoas/protocol/openid-connect/token" ; camel.component.kafka.additional-properties[sasl.login.callback.handler.class]=io.strimzi.kafka.oauth.client.JaasClientOauthLoginCallbackHandler consumer.topic=<TOPIC-NAME> producer.topic=<TOPIC-NAME>
运行以下命令,创建一个在
application.properties
文件中包含敏感属性的 secret:oc create secret generic kafka-props --from-file application-oauth.properties
运行 Camel K 集成时,您可以使用此 secret。