经过一个示例了解kafka connect链接器

什么是kafka链接器connect

在实际工做中使用 kafka ,有时候会有相似这样的场景。咱们须要把某些数据源的数据导入到 kafka,或者把 kafka 做为数据源导出数据。或者两种场景的需求都要。数据库

这算是一种 kafka 生产者,消费者模式的特殊使用场景。它主要服务于数据管道的场景,为此 kafka 在0.9版本开始增长了 connect 功能,这样能够很方便使得 kafka 能够做为数据管道各个数据段的大型缓冲区,有效的解耦了管道两端的生产者和消费者。segmentfault

kafka connect包含两个组件,source connector 和 sink connector。顾名思义,前者能够数据源(好比数据库,文件系统)拉取数据塞入 kafka 的 topic中。然后者则从kafka消费数据到另外一个数据源(好比Elasticsearch,Hadoop)。api

链接器和客户端api有什么区别

链接器和普通的生产者消费者模式有什么区别呢?彷佛两种方式均可以达到目的。可能第一次接触connect的人都会由此疑问。在《kafka权威指南》这本书里,做者给出了建议:bash

若是你是开发人员,你会使用 Kafka 客户端将应用程序链接到
Kafka ,井修改应用程序的代码,将数据推送到 Kafka 或者从 Kafka 读取数据。

若是要将 Kafka 链接到数据存储系统,可使用 Connect,由于这些系统不是你开发的,
构建数据管道 I 10s你无能或者也不想修改它们的代码。 Connect 能够用于从外部数据存储系统读取数据, 或
者将数据推送到外部存储系统。若是数据存储系统提供了相应的链接器,那么非开发人员
就能够经过配置链接器的方式来使用 Connect。oop

若是你要链接的数据存储系统没有相应的链接器,那么能够考虑使用客户端 API 或
Connect API 开发一个应用程序。咱们建议首选 Connect,由于它提供了一些开箱即用的
特性,好比配置管理、偏移量存储、井行处理、错误处理,并且支持多种数据类型和标准
的 REST 管理 API。开发一个链接 Kafka 和外部数据存储系统的小应用程序看起来很简单,
但其实还有不少细节须要处理,好比数据类型和配置选项,这些无疑加大了开发的复杂
性一一毛onnect 处理了大部分细节,让你能够专一于数据的传输。

一个链接器的应用示例

这个示例,咱们用kafka自带的链接器进行演示,这样咱们就省去了使用 connect api 去开发一个connect的麻烦。post

首先启动 zk+kafka 的环境,而后启动connect进程,spa

./bin/connect-distributed.sh config/connect-distributed.properties

而后咱们输入下面的命令来确认下是否启动成功。.net

在这里插入图片描述

接着咱们启动一个文件数据源,code

在这里插入图片描述

解释下,blog

其实就是把 echo 的内容做为http post的数据发送过去,-d @-表示从管道获取数据。在这个数据中,咱们指定了链接器的名字 load-kafka-config,链接器的类名,使用的是自带的FileStream-Source,须要读取的数据源的路径,固然还有kafka的topic。

这条命令执行完后,文件的内容就被发送到kafka的topic上了,咱们能够经过下面这个命令来查看下,

在这里插入图片描述

咱们用消费者控制台读取了topic上的消息。能够发现每个payload包含上面读取的文件的一行。

接着咱们使用一个自带的链接器把topic里的数据读出来,而且导出到文件中保存(mydata.txt),保存的文件内容应该和前面读取的那个配置文件的内容是同样的。

在这里插入图片描述


参考:

《kafka权威指南》


关注公众号:思无邪了吗

我的博客:http://www.machengyu.net

csdn博客: https://blog.csdn.net/pony_ma...

思否: https://segmentfault.com/u/ma...

相关文章
相关标签/搜索