Kafka Connect 基本概念

栏目: 后端 · 发布时间: 7年前

内容简介:搭建好了Kafka集群以后,最常见的两个需求就是:1、将数据从数据源采集并发送到Kafka的topic中;2、将数据从Kafka中取出,(进行运算后),然后再转存到其他的位置。完成这一工作,通常我们会使用各种语言的kafka客户端(Kafka client),调用相应的API,来完成读写kafka的操作。因为这种操作是非常常见的,因此kafka包含了一个名为Kafka Connect的组件,专门来完成这项工作。各种语言版本的kafka客户端地址是:kafka Connect 的官方文档已经非常详尽了,没有

搭建好了Kafka集群以后,最常见的两个需求就是:1、将数据从数据源采集并发送到Kafka的topic中;2、将数据从Kafka中取出,(进行运算后),然后再转存到其他的位置。完成这一工作,通常我们会使用各种语言的kafka客户端(Kafka client),调用相应的API,来完成读写kafka的操作。因为这种操作是非常常见的,因此kafka包含了一个名为Kafka Connect的组件,专门来完成这项工作。

各种语言版本的kafka客户端地址是: https://cwiki.apache.org/confluence/display/KAFKA/Clients

kafka Connect 的官方文档已经非常详尽了,没有必要复述(或者“翻译”?)一遍。因为后续文章中会提到Kafka Conncet中的一些重要概念和名词,因此这篇文章仅就这些概念简要地说明一下。官方文档关于Kafka connect的地址如下:

confluent是kafka的创始人从LinkIn出来后成立的公司,围绕kafka提供企业服务。

在没有kafka connect时,一个简化的、典型的流程图可能是这样的:

Kafka Connect 基本概念
使用kafka客户端api进行读写

使用kafka connect,就替换了之前 .net core app(也可以是java app、go app等)的位置,重要的是kafka connect可以以集群的方式部署,并提供容错性:

Kafka Connect 基本概念
使用kafka库api进行读写

这里面的一些重要概念如下:

Data Source

数据源,各种数据存储都可以作为数据源,包括但不限于关系型数据库、文件系统、消息队列等。

Data Sink

数据池,各种数据存储都可以作为数据池,包括但不限于关系型数据库、HDFS、HBase、 MongoDB 、Console控制台等。

Connector

有静态和动态两个概念,有点类似于代码和进程的关系。

静态概念 :Connector就是可重用的 java 包(jars),此时也叫做connector plugin。可以自行开发,也可以使用第三方已经开发好的。例如confluent的connector下载地址是:www.confluent.io/hub。

动态概念 :当前运行着的connector实例(包含了task和用户配置)。

Source Connector

从Data Source中获取数据,并写入Kafka。

Sink Connector

从Kafka中读取数据,并写入Data Sink。

Task

Connector有其 自身配置 ,例如group.id,将多个connector分为同一组;bootstrap.servers表明kafka的位置。

Connector还有 用户配置 ,用来配置其所执行的Task。

Connector可以只用其 自身配置 运行,此时其不包含任何task。当向Connector提交用户配置时,自动就运行了一个task。通常一个Connector包含一个Task。

Connector和Task分离的方式,便于进行容错:当一个worker失效时,会自动将task转移到其他worker上。

Worker

Connector和Task都是逻辑单元,它们都必须在进程内执行,这些进程称为workers。

Worker有两种部署方式,一种Standalone,一种Distributed。

当使用Standalone时,connector自身配置和用户配置同时加载,并捆绑在同一进程。

当使用Distributed时,connector先使用自身配置启动(此时没有运行任何task),然后再通过REST API提交用户配置,启动Task。

感谢阅读,希望这篇文章能给你带来帮助!

Kafka Connect 基本概念


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

游戏编程中的人工智能技术

游戏编程中的人工智能技术

布克兰德 / 吴祖增 / 清华大学出版社 / 2006-5 / 39.0

《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游戏演示软件。 《游戏编程中的人工智能技术》适合遗传算法和人工神经网络等人工智能技术的各行业人员,特别是要实际动手做应用开......一起来看看 《游戏编程中的人工智能技术》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试