第 2 章 使用 Kamelets 连接到 Kafka
Apache Kafka 是一个开源、分布式、发布-订阅消息系统,用于创建具有容错、实时数据反馈。Kafka 为大量消费者(外部连接)快速存储和复制数据。
Kafka 可帮助您构建处理流事件的解决方案。分布式、事件驱动的架构需要一个"backbone",用于捕获、沟通并帮助进程事件。Kafka 可以充当将数据源和事件连接到应用程序的通信主干。
您可以使用 Kamelets 来配置 Kafka 和外部资源之间的通信。Kamelets 允许您配置数据如何在 Kafka 流处理框架中从一个端点移动到另一个端点,而无需编写代码。Kamelets 是通过指定参数值来配置的路由模板。
例如: Kafka 以二进制形式存储数据。您可以使用 Kamelets 来序列化和反序列化数据以用于发送和从外部连接接收。在 Kamelets 中,您可以验证该模式并更改数据,如向其中添加、过滤或屏蔽。Kamelets 也可以处理和处理错误。
2.1. 使用 Kamelets 连接到 Kafka 概述
如果使用 Apache Kafka 流处理框架,您可以使用 Kamelets 将服务和应用程序连接到 Kafka 主题。Kamelet Catalog 提供以下 Kamelets,专门用于连接到 Kafka 主题:
-
Kafka-sink
- 将事件从数据制作者移到 Kafka 主题。在 Kamelet Binding 中,将kafka-sink
Kamelet 指定为 sink。 -
Kafka
-source
- 将事件从 Kafka 主题移到数据消费者中。在 Kamelet Binding 中,将kafka-source
Kamelet 指定为源。
图 2.1 演示了连接源和 sink Kamelets 到 Kafka 主题的网络流。
图 2.1:带有 Kamelets 的数据流和 Kafka 主题
以下是使用 Kamelets 和 Kamelet Bindings 将应用程序和服务连接到 Kafka 主题的基本步骤概述:
设置 Kafka:
安装所需的 OpenShift 操作器。
- 对于 Apache Kafka 的 OpenShift Streams,安装 Camel K Operator、Camel K CLI 和 Red Hat OpenShift Application Services(RHOAS)CLI。
- 对于 AMQ 流,请安装 Camel K 和 AMQ 流操作器和 Camel K CLI。
- 创建 Kafka 实例。Kafka 实例作为一个消息代理运行。代理包含主题,并编配存储及传递消息。
- 创建一个 Kafka 主题。主题提供数据存储的目的地。
- 获取 Kafka 身份验证凭证。
- 确定您要连接到 Kafka 主题的服务或应用程序。
- 查看 Kamelet Catalog 以查找您要添加到集成的源和接收器组件的 Kamelet。另外,请确定您要使用的每个 Kamelet 所需的配置参数。
创建 Kamelet Bindings:
-
创建一个 Kamelet Binding,将数据源(生成数据的组件)连接到 Kafka 主题(使用
kafka-sink
Kamelet)。 -
创建一个 Kamelet Binding,它将 kafka 主题(使用
kafka-source
Kamelet)连接到一个数据 sink(一个使用数据的组件)。
-
创建一个 Kamelet Binding,将数据源(生成数据的组件)连接到 Kafka 主题(使用
- 另外,也可以通过在 Kamelet Binding 中添加一个或多个操作 Kamelets 来操作在 Kafka 主题和数据源或接收器间传输的数据。
- (可选)定义如何在 Kamelet Binding 内处理错误。
将 Kamelet Bindings 作为资源应用到项目。
Camel K operator 为每个 Kamelet Binding 生成一个单独的 Camel K 集成。