📅  最后修改于: 2021-01-05 02:58:20             🧑  作者: Mango
Kafka Connect
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是可扩展和分布式的。因此,可以扩展工作人员的数量以扩展Kafka Connect集群。
- 流或批处理集成: Kafka Connect提供了桥接流和批处理系统的解决方案。
Kafka Connect术语
一些重要的术语将有助于理解Kafka Connect:
- 连接器:连接器用于协调和管理Kafka以及其他系统之间的数据复制。创建执行数据流管理的连接器实例。连接器使用的所有类均在名为“连接器插件”的插件中定义。
- 任务:它完成了向或从Apache Kafka复制数据的实际实现。连接器的每个实例协调一组实际复制数据的任务。 Kafka连接器能够将单个作业分解为多个任务。这提供了内置的支持,以很少的配置即可并行且可扩展地复制数据。由于可以随时启动,重新启动或停止这些任务以提供可伸缩且具有弹性的管道,因此其状态保留在特殊主题中,例如“ config.storage.topic”和“ status.storage.topic”。关联的连接器管理状态。
- 工作者:连接器和任务都是工作的逻辑单元。工人是正在执行连接器和任务的运行过程。有两种类型的工人:
- 独立工作程序:这些工作程序是一个进程执行所有连接器以及任务的工作程序。这是最简单的模式,因此需要较少的配置。但是,功能和可伸缩性有限。除了监视之外,它没有任何容错能力。
- 分布式工作者:与上面的工作者不同,它提供了可扩展的自动容错能力。在这里,多个工作进程使用相同的组ID执行连接器和任务。这些工作程序自动在所有活动工作程序之间安排执行时间。如果添加了新工作人员,或者任何工作人员出现故障或关闭,工作人员将重新分配作品。
- 转换器:这是用于在Kafka Connect和发送者/接收者之间转换数据的代码。任务使用这些转换器将数据格式从字节更改为Kafka Connect内部数据。
- 转换:用于更改数据以使其简单轻巧。这是一个简单的函数,它将单个记录作为输入,对其进行修改并输出该记录。 Kafka Connect提供了许多转换,它们执行简单而有用的修改。有多种用于数据修改的转换,例如强制转换,删除,ExtractTopic等。
Kafka Connect的优势
- 以数据为中心的管道: Kafka Connect使用数据抽象将数据推入或拉出到Apache Kafka。
- 灵活且可扩展: Kafka Connect能够在单个节点上与流和面向批处理的系统一起执行。
- 可重用性和可扩展性: Kafka Connect可根据用户需求扩展现有的连接器。