第 1 章 Kamelets 概述
Kamelets 是高层次的连接器,在事件驱动架构解决方案中充当构建模块。它们是您可以在 OpenShift 集群上安装并在 Camel K 集成中使用的自定义资源。Kamelets 加速您的开发工作。它们简化了您如何连接数据源(发出事件)和数据接收器(使用事件)。由于您配置 Kamelet 参数而不是编写代码,因此您无需熟悉 Camel DSL 以使用 Kamelets。
您可以使用 Kamelets 将应用程序和服务直接连接到相互或者:
- Kafka 主题,如使用 Kamelets 连接到 Kafka 所述。
- Knative 目的地(通道或代理),如使用 Kamelets 连接到 Knative 所述。
- 特定的 Camel URI,如 连接到显式 Camel URI 中所述。
1.1. 关于 Kamelets
Kamelets 是路由组件(封装代码),充当 Camel 集成中的连接器。您可以将 Kamelets 视为定义使用数据的位置(源)以及将数据发送到的位置(接收器) - 允许您组装数据管道。Kamelets 也可以根据数据过滤、掩码和执行简单的计算逻辑。
Kamelets 有三种不同的类型:
- Source - 生成数据的路由。您可以使用源 Kamelet 从组件中检索数据。
- sink - 使用数据的路由。您可以使用 sink Kamelet 将数据发送到组件。
- 操作 - 对数据执行操作的路由。在从源 Kamelet 传递给一个 sink Kamelet 时,您可以使用一个操作 Kamelet 操作数据。
1.1.1. 为什么使用 Kamelets?
在 微服务和 事件驱动的架构解决方案 中,Kadmelets 可以用作发送事件和 sink 的源的构建块。
Kamelets 提供抽象(隐藏连接到外部系统的复杂性)和可重复利用性(它们是重复使用代码并将其应用到不同用例的简单方法)。
以下是一些示例用例:
- 您希望应用程序使用来自 Telegram 的事件,您可以使用 Kamelets 将 Telegram 源绑定到事件频道。之后,您可以将应用程序连接到那个频道,以便响应这些事件。
- 您希望应用程序直接连接到 Slack。
Kamelets 允许您和您的集成开发团队更有效。您可以重复使用 Kamelets 并与您的团队成员共享,这些成员可以根据自己的需求配置实例。底层 Camel K 运算符执行硬工作:它编译、构建、软件包和部署 Kamelet 定义的集成。
1.1.2. 谁使用 Kamelets?
由于 Kames 允许您减少 Camel 集成所需的编码量,所以他们非常适合不熟悉 Camel DSL 的开发人员。Kamelets 可以帮助为非 Camel 开发人员顺利掌握学习曲线。您无需了解其他框架或语言即可让 Camel 运行。
Kamelets 对希望将复杂的 Camel 集成逻辑封装到可重复使用的 Kamelet 的经验丰富的 Camel 开发人员也很有用,然后与其他用户共享。
1.1.3. 使用 Kamelets 的先决条件是什么?
要使用 Kamelets,您需要以下环境设置:
- 您可以使用正确的访问级别访问 OpenShift 4.6 (或更新版本)集群、创建项目和安装操作器,以及在本地系统上安装 OpenShift 和 Camel K CLI 工具的功能。
- 您需要在命名空间或集群范围安装 Camel K 操作器,如 安装 Camel K所述
-
已安装 OpenShift 命令行(
oc
)接口工具。 (可选)您使用 Camel K 插件安装 VS 代码或其他开发工具。基于 Camel 的工具扩展包括根据嵌入式 Kamelet Catalog 自动完成 Camel URI 的功能。如需更多信息,请参阅 Camel K 入门 中的 Camel K 开发工具 部分。
注意: Visual Studio (VS) Code 工具扩展仅社区。
1.1.4. 如何使用 Kamelets?
使用 Kamelet 通常涉及两个组件: Kamelet 本身,它定义了可重复使用的路由片断,以及一个 Kamelet Binding,在其中引用并绑定一个或多个 Kamelets。Kamelet Binding 是一个 OpenShift 资源(KameletBinding
)。
在 Kamelet Binding 资源中,您可以:
- 将接收器或源 Kamelet 连接到事件频道: Kafka 主题或 Knative 目标(频道或代理)。
- 将 sink Kamelet 直接连接到 Camel 统一资源标识符(URI)。您还可以将源 Kamelet 连接到 Camel URI,但连接 URI 和 sink Kamelet 是最常见的用例。
- 将接收器和源 Kamelet 直接连接到彼此,而无需将事件频道用作中间层。
- 在同一 Kamelet Binding 中多次引用同一 Kamelet。
- 添加操作 Kamelets 在从源 Kamelet 传递给一个 sink Kamelet 时操作数据。
- 定义错误处理策略,以指定在发送或接收事件数据时出现失败的 Camel K 应该做什么。
在运行时,Camel K 运算符使用 Kamelet Binding 来生成和运行 Camel K 集成。
注: 虽然 Camel DSL 开发人员可以直接在 Camel K 集成中使用 Kamelets,但实施 Kamelet 更为简单的方法是通过指定 Kamelet Binding 资源来构建高级别事件流。