以Kafka Connect作为实时数据集成平台的基础架构有什么优势?

Kafka Connect是一种用于在Kafka和其他系统之间可扩展的、可靠的流式传输数据的工具,可以更快捷和简单地将大量数据集合移入和移出Kafka的连接器。Kafka Connect为DataPipeline提供了一个相对成熟稳定的基础框架,还提供了一些开箱即用的工具,大大地降低研发的投入和提升应用的质量。

下面,我们看一看Kafka Connect的具体优势。

首先,Kafka Connect提供的是以数据管道为中心的业务抽象。在Kafka Connect里有两个核心概念:Source和Sink。Source负责导入数据到Kafka,Sink负责从Kafka导出数据,它们都被称为Connector。比如Source Connector,Sink Connector,其实就是提供了数据读取和写入的高度业务抽象,可以简化很多生命周期的管理工作。

当然,Source Connector会去初始化Source Task,Sink Connector会去初始化Sink Task。这些都是标准的封装。对于数据方面,通过Source & Sink Record把数据的结构进行标准化的抽象。另外,企业客户在做数据集成的时候,数据在很多应用场景下都要求有一定的格式,所以在Kafka Connect里用Schema Registry & Projector来解决数据格式验证和兼容性的问题。当数据源产生变化的时候,会生成新的Schema版本,通过不同的处理策略用Projector来完成对数据格式的兼容。

备注:更多关于Kafka Connect及实时数据集成的问题,欢迎给我留言或直接访问官方网址:http://datapipeline.com

第二,Kafka Connect具有良好的可伸缩性、与容错性。这些特性是与Kafka是一脉相承的。在流式处理和批量处理模式里,更多取决于Source端如何去读取数据,Kafka Connect天然支持流式处理和批量传输方式。单节点和集群水平扩展功能都是由Kafka Connect框架直接支持。而任务恢复和状态保持方面,目的端任务的写入进度信息通过Kafka Connect框架自动管理、源端任务可以根据需要往Kafka里面放读取进度信息,节省很多精力去管理任务重启后的进度。

对于数据集成这样一个通用的应用场景里,大家肯定都不希望重复发明*。目前,在Kafka Connect生态系统下,拥有可以直接使用的Connector共84个,绝大部分都是开源的。其中,一部分是Kafka官方提供的,另外一些是Confluent认证的,还有一些是第三方提供的。根据需求适当裁剪后,这些Connector都可以应用到自己的系统平台中。

上一篇:DataPipeline CTO陈肃:构建批流一体数据融合平台的一致性语义保证


下一篇:【转】Java并发编程:volatile关键字解析