Kafka Connect2024 年 8 月 29 日 | 4 分钟阅读 Kafka Connect 是一个用于在 Kafka 和其他系统之间可靠且可扩展地流式传输数据的工具。它是一个开源组件和框架,用于将 Kafka 与外部系统连接起来。 有连接器可以帮助将大量数据集移入和移出 Kafka 系统。 Kafka Connect 仅用于复制流数据,因此其范围并不广泛。 它作为独立进程执行用于测试,并为组织提供分布式、可扩展的服务支持。 Kafka Connect 提供了现有的连接器实现,用于移动一些常见的数据 - 源连接器: 源连接器获取整个数据库并将表更新流式传输到主题。 它能够从用户的整个应用程序服务器中收集指标到主题中。 这使得数据可用于具有低延迟的流处理。
- 接收器连接器: 此连接器用于将来自主题的数据传递到二级索引,例如 Hadoop 系统,以进行离线分析。
Kafka Connect 的特点Kafka Connect 具有以下特点 - 通用框架: 它作为连接器的通用框架。 Kafka Connect 允许将其他系统与 Kafka 集成。 这使得连接器的部署、管理和开发变得简单。
- 可以在独立或分布式模式下工作: Kafka Connect 可以向上扩展以向组织提供集中管理的服务支持,也可以向下扩展以用于测试、开发和部署小型生产。
- REST 接口: 通过 REST API 提交和管理 Kafka 连接器到 Kafka Connect。
- 自动管理偏移量: Kafka Connect 能够通过从连接器获取少量信息来自动管理提交过程。
- 分布式和可扩展: 默认情况下,Kafka Connect 是可扩展和分布式的。 因此,可以扩展 worker 的数量以扩展 Kafka Connect 集群。
- 流或批处理集成: Kafka Connect 提供了桥接流和批处理系统的解决方案。
Kafka Connect 术语一些重要的术语将有助于理解 Kafka Connect - 连接器: 连接器用于协调和管理 Kafka 与其他系统之间的数据复制。 创建一个连接器实例来执行数据流管理。 连接器使用的所有类都在一个名为 连接器插件 的插件中定义。
- 任务: 它实际执行将数据复制到 Apache Kafka 或从 Apache Kafka 复制数据。 连接器的每个实例都会协调一组实际复制数据的任务。 Kafka 连接器能够将单个作业分解为多个任务。 这提供了内置的支持,可以并行且可扩展地复制数据,只需很少的配置。 由于这些任务可以随时启动、重新启动或停止以提供可扩展且有弹性的管道,因此它的状态保存在特殊主题中,即 'config.storage.topic' 和 'status.storage.topic'。 相关的连接器管理状态。
- 工作人员: 连接器和任务都是工作逻辑单元。 worker 是执行连接器和任务的运行进程。
有两种类型的 worker- 独立 worker: 这些是单个进程执行所有连接器和任务的 worker。 这是最简单的模式,因此它需要更少的配置。 但是,功能和可扩展性有限。 除了监控之外,它没有任何容错能力。
- 分布式 worker: 与上述不同,它提供了可扩展和自动的容错能力。 在这里,多个 worker 进程使用相同的组 ID 执行连接器和任务。 这些 worker 会自动跨所有活动 worker 调度执行。 如果添加了新的 worker,或者任何 worker 失败或关闭,worker 会重新分配工作。
- 转换器: 它是用于在 Kafka Connect 和发送者/接收者之间转换数据的代码。 这些转换器由任务用于将数据格式从字节更改为 Kafka Connect 内部数据。
- 转换: 它用于更改数据以使其简单且轻量级。 这是一个简单的函数,它将一个记录作为输入,修改它,并输出记录。 Kafka Connect 提供了许多转换,它们执行简单而有用的修改。 有各种用于数据修改的转换,例如 cast、drop、ExtractTopic 等等。
Kafka Connect 的优势- 以数据为中心的管道: Kafka Connect 使用数据抽象来将数据推入或拉入 Apache Kafka。
- 灵活且可扩展: Kafka Connect 能够在单个节点上执行流式传输和面向批处理的系统。
- 可重用性和可扩展性: Kafka Connect 根据用户需求扩展现有连接器。
|