七、Kafka Connector (连接器)

article/2025/10/13 16:44:03

    Kafka Connect 是一种用于在 Apache Kafka® 和其他数据系统之间可扩展且可靠地流式传输数据的工具。它使快速定义将大型数据集移入和移出 Kafka 的连接器变得简单。Kafka Connect 可以摄取整个数据库或从应用程序服务器收集指标到 Kafka 主题中,使数据可用于低延迟的流处理。导出连接器可以将数据从 Kafka 主题传送到二级索引(如 Elasticsearch)或批处理系统(如 Hadoop)以进行离线分析。

一、Kafka主要概念

  • 连接器——通过管理任务来协调数据流的高级抽象
  • 任务——如何将数据复制到 Kafka 或从 Kafka 复制数据的实现
  • 工人- 执行连接器和任务的运行进程
  • 转换器——用于在 Connect 和发送或接收数据的系统之间转换数据的代码
  • 转换- 改变由连接器产生或发送到连接器的每条消息的简单逻辑
  • 死信队列– Connect 如何处理连接器错误

1.1 连接器

     

        Kafka Connect 中的连接器定义了数据应该复制到哪里和从哪里复制。阿连接器实例是负责管理和卡夫卡其他系统间的数据的复制的逻辑工作。连接器实现或使用的所有类都在连接器插件中定义。连接器实例和连接器插件都可以称为“连接器”,但从所引用的上下文中应该始终清楚(例如,“安装连接器”指的是插件,“检查连接器的状态”) ”指的是一个连接器实例)。

我们鼓励用户利用现有的连接器。但是,可以从头开始编写新的连接器插件。概括地说,希望编写新连接器插件的开发人员遵循以下工作流程。开发人员指南中提供了更多信息。

1.2 任务

任务是 Connect 数据模型中的主要参与者。每个连接器实例协调一组实际复制数据的任务。通过允许连接器将单个作业分解为多个任务,Kafka Connect 以很少的配置提供了对并行性和可扩展数据复制的内置支持。这些任务中没有存储状态。任务状态存储在 Kafka 中的特殊主题中config.storage.topic,status.storage.topic 并由关联的连接器管理。因此,可以随时启动、停止或重新启动任务,以提供弹性、可扩展的数据管道。

通过 Connect 源任务传入 Kafka 的数据的高级表示。请注意,内部偏移量存储在 Kafka 或磁盘中,而不是存储在任务本身中。

1.3任务再平衡

当连接器首次提交到集群时,工作人员会重新平衡集群中的全套连接器及其任务,以便每个工作人员的工作量大致相同。当连接器增加或减少它们需要的任务数量时,或者当连接器的配置发生更改时,也会使用相同的重新平衡过程。当工作人员失败时,任务会在活动工作人员之间重新平衡。当任务失败时,不会触发重新平衡,因为任务失败被视为例外情况。因此,失败的任务不会由框架自动重新启动,而应通过REST API重新启动。

任务故障转移示例显示了在工作器故障时任务如何重新平衡。

1.4 工人

连接器和任务是工作的逻辑单元,必须安排在流程中执行。Kafka Connect 将这些进程称为工作人员,并且有两种类型的工作人员:独立的和分布式的。

1.4.1 独立工作者

独立模式是最简单的模式,其中一个进程负责执行所有连接器和任务。

由于它是单个进程,因此需要最少的配置。独立模式便于入门、开发期间以及某些只有一个进程有意义的情况,例如从主机收集日志。但是,因为只有一个进程,所以它的功能也更加有限:可扩展性仅限于单个进程,除了您添加到单个进程的任何监视之外,没有容错能力。

1.4.2 分布式工作者

分布式模式为 Kafka Connect 提供了可扩展性和自动容错能力。在分布式模式下,您可以使用相同的方式启动许多工作进程group.id,它们会自动协调以安排所有可用工作人员之间的连接器和任务的执行。如果您添加工作人员、关闭工作人员或工作人员意外失败,其余工作人员会检测到这一点并自动协调以在更新的可用工作人员集之间重新分配连接器和任务。请注意与消费者组重新平衡的相似性。在幕后,连接工作人员正在使用消费者群体进行协调和重新平衡。

注意:

所有具有相同的工作人员group.id将在同一个连接集群中。例如,如果 worker-a group.id=connect-cluster-a和 worker-b 具有相同的group.id,则 worker-a 和 worker-b 将形成一个名为 的集群connect-cluster-a。

 三节点 Kafka Connect 分布式模式集群。连接器(监控源或接收器系统的更改需要重新配置任务)和任务(复制连接器数据的子集)在活动工作人员之间自动平衡。任务之间的工作分工由每个任务分配的分区表示。

二、Connector 单机版部署连接JDBC

2.1 下载kafka-connect-jdbc

 下载安装JDBC SOURCE CONNECTOR 网址:https://www.confluent.io/hub/  解压到kafka的下载目录中的plugins文件夹下,解压后里面有一下文件

2.2 整理文件

将etc文件夹中的两个文件复制到kafka的下载目录中的config文件夹下,并且将两个分别重命名为“connect-mysql-sink.properties” 和“connect-mysql-source.properties”

将lib文件中的kafka-connect-jdbc-10.2.0.jar的文件在kafka的下载目录中libs文件中新建一个connector的文件,将这个文件放入,并将lib下的所有文件复制到kafka的libs目录下,并将jdbc的连接驱动jar包拷贝一份复制到kafka的libs文件中一份

2.2.1修改connect-mysql-sink.properties里面的配置

name=test-sink
connector.class=io.confluent.connect.jdbc.JdbcSinkConnector
tasks.max=1
topics=orders
connection.url=jdbc:mysql://localhost:3306/kafkatest?user=root&password=root
auto.create=true
pk.mode = record_value
pk.fields = kafkacol
table.name.format=kafkatable
security.protocol=SSL
ssl.truststore.location=/tmp/kafka.client.truststore.jks

2.2.2 修改connect-mysql-source.properties里面的配置

name=test-source-sqlite-jdbc-autoincrement
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1connection.url=jdbc:mysql://localhost:3306/kafkatest?user=root&password=root
mode=incrementing
incrementing.column.name=id
topic.prefix=test-sqlite-jdbc-

2.2.3 修改connect-standalone.properties配置

bootstrap.servers=localhost:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
offset.storage.file.filename=/tmp/connect.offsets
offset.flush.interval.ms=10000
#配置jdbc在kafka配置目录中的位置
plugin.path=E:\kafka_2.12-2.4.0\libs\connector

2.2、测试connect-jdbc

2.2.1 分别启动zkserver和各个kafka

2.2.2 启动kafka-connect

bin\windows\connect-standalone.bat config/connect-standalone.properties config\connect-mysql-source.properties

2.2.3 测试

在被连接的数据库的表中插入一条数据,观察kafka是否有新的主题生成,并且查看里面的数据


http://chatgpt.dhexx.cn/article/DQvop3rn.shtml

相关文章

连接器是什么?连接器有什么作用?

连接器是什么? 连接器,即CONNECTOR。 在中国也称为连接器、插头和插座。 一般指连接器。 即连接两个有源设备以传输电流或信号的设备。 广泛应用于航空、航天、国防等军事系统。 连接器是我们电子工程技术人员经常接触到的部件。 SIM卡插座连接器是手机、…

一分二网线连接器正确使用方法

考虑到公司有很多同事需要连接pc的同时要连接无线路由器,但是每个工位只有一个网络面板。 所以就采购了一批一分二网线连接器 本来以为可以直接把一根网线分成两根直接使用,想法如下图: 只能说想法太天真!!&#xff0…

电路板常用连接器(接插件)介绍与选型建议(板对板连接器,板对线连接器,线对线连接器等)

提示:本文介绍常用的连接器,这些连接器适合常规的工作条件。本文适合刚接触电路板或者对连接器不熟悉的攻城狮阅读。 文章目录 前言一、连接器具体应该叫什么?二、连接器型号分类1.目前的型号是怎么来的和分类2.选型注意事项3.连接器的购买与…

常见的光纤连接器有哪些?光纤连接器的种类科普

光纤连接器根据光纤连接器结构类型的不同可以分为不同的类型,根据传输介质的不同可分为单模光纤连接器和多模光纤连接器; 适用于FC、SC、ST、D4、DIN、Biconic、MU、LC、MT等类型; 连接器按引脚端面可分为PC(UPC)和APC…

Wafer连接器的介绍

Wafer连接器通常是指连接器底座(芯片座)连接器,一般由金属件和塑料件组装而成。 与只有塑料件(有些有铁壳)的软管不同,它是由电线和端子组装而成的。wafer插座连接器由固定端电连接器,即阴接触件&#xff0…

连接器分类及选型

常用连接器分类 D型连接器 射频连接器 圆形连接器 背板连接器 RJ连接器(电话连接器、网口连接器) 扁平电缆连接器 功率连接器 端子类连接器 标准间距连接器 欧式连接器 光纤连接器 其他连接器 D型连接器 D型普通:9芯、15芯、25…

链接器 --- Linker

链接器 1. 背景 ​ 对于经常使用 IDE 的开发者,通常点击一个按钮就万事大吉了,这虽然极大简化了过程,但是对于我们C语言这些相对底层的开发者来说非常非常不友好,屏蔽了大量细节,不了解内部细节是非常可怕的&#xf…

arm-gcc链接器和链接脚本

本文主要介绍了链接器和链接脚本的基本内容。主要偏向于入门级以及常见容易混淆的知识点。 1. 链接器介绍 在现在软件工程中,程序一般都比较复杂,通常由多个源文件组成。在编译的过程中会对这些源文件进行汇编或者编译然后生成目标文件。这些目标文件一…

彻底理解链接器:一

目录 什么是链接器(Linker) 链接器可操作的元素 链接器是如何工作的 过程一:符号决议 c源文件中都有什么 目标文件里有什么 符号表(Symbol table) 符号表存放在哪里 符号决议的过程 实例说明undefined reference 过程二&#xff1…

【python】pip指定路径安装文件

在网上下载个tar.gz的安装包,用pip在指定目录安装 pip install --target路径 文件名 pip install --targetE:\work\zicai\pd_code\AutoTest3.7\shujia\venv\Lib\site-packages xlwings-0.18.0.tar.gz 指定下载pyecharts包1.7.0版本到执行路径 pip3 install -i h…

如何查看Ubuntu中Python的安装路径

ubuntu查看python安装路径 查找方法: python import sys pythonpath sys.executable print(pythonpath)Python的安装路径:/usr/bin/python 可提供远程搭建运行服务 不会调试运行的同学,你只需打开远程,会帮你搭建调试好一切&a…

如何找到python 安装路径

我觉得第二个方法更实用,直接按个快捷键F8就行了 第一个:打开python,或者命令行 输入 import sys for i in sys.path: ... print(i) 输出 C:\Users\ASUS\AppData\Local\Programs\Python\Python37\python37.zip C:\Users\ASUS\AppDat…

找Python安装目录,设置环境路径以及在命令行运行python脚本

第一点:找Python安装目录 方法一: 方法二: 输入import sys print(sys.path) 化黑线处 第二点:找到安装目录后就可以开始设置环境变量 这里我的安装目录为C:\Program Files\Python36 再字符串的末尾&…

如何查看Python的安装路径

如何查看Python的安装路径 打开cmd,输入python -m site 发现我的Pyhton安装路径就是:C:\Users\XXXXX\AppData\Local\Programs\Python\Python38

【windows环境下】如何将python模块安装到指定目录下

当你只安装了一个版本的python的时候只需要用 pip install [模块名]就可以安装模块 当存在多个python环境,要将模块添加到某个环境下 可以使用下面的代码 pip install -t [路径]\ [模块名]其中的路径是你选择的环境python所在的安装目录 一般在python下的Lib目录…

下完安装好python后,想查看python的安装位置的几种方法

查看python的路径 基于windows系统,按下winr(也就是命令提示符),输入cmd ,进入 查看当前的python的版本的话输入python -V 1, 查看当前下载的python类型和路径则可以输入 py -0 (加 * 的是你使用python的默…

python安装路径怎么找-怎么查看python安装路径

查看python安装路径的方式:1、在桌面上右击Python软件图标,点击“打开文件所在的位置”,即可直接跳转到安装目录;或是右击之后点击“属性”,查看安装路径。2、在“任务管理器”中找到Python应用,右击选择“打开文件所在的位置”,打开软件的安装位置。 Python是一种脚本语…

cd对Python安装目录操作

1.Python安装路径查询:cmd中使用指令:py -0p 2.cmd操作: 切换当前盘:D: 进入当前盘文件:cd空格位置 返回上一级目录:cd ..

Python安装目录详解

最常用到的就是图中标出的python参考文档与python的标准库。 具体: DLLs:python的动态链接库,跟编译器有关,和python 编程关系不大 Doc:python的参考书,有很多实例 lnclude:python编译器的C语言源码 Lib:…

如何查看python安装路径

在使用python的时候,有时候会需要找到python包的安装位置,来找其他安装的第三方包。下面我们来看看,在不同平台上,怎么找到python的安装路径。 很多运行的系统软件都是建立在python的基础之上,如果python出错了&#…