Kafka Connect簡介


http://colobu.com/2016/02/24/kafka-connect/#more

Kafka 0.9+增加了一個新的特性Kafka Connect,可以更方便的創建和管理數據流管道。它為Kafka和其它系統創建規模可擴展的、可信賴的流數據提供了一個簡單的模型,通過connectors可以將大數據從其它系統導入到Kafka中,也可以從Kafka中導出到其它系統。Kafka Connect可以將完整的數據庫注入到Kafka的Topic中,或者將服務器的系統監控指標注入到Kafka,然后像正常的Kafka流處理機制一樣進行數據流處理。而導出工作則是將數據從Kafka Topic中導出到其它數據存儲系統、查詢系統或者離線分析系統等,比如數據庫、Elastic SearchApache Ignite等。

Kafka Connect特性包括:

  • Kafka connector通用框架,提供統一的集成API
  • 同時支持分布式模式和單機模式
  • REST 接口,用來查看和管理Kafka connectors
  • 自動化的offset管理,開發人員不必擔心錯誤處理的影響
  • 分布式、可擴展
  • 流/批處理集成

流數據平台

基於Kafka, LinkedIn等一些大公司已經建立起架構類似的、可擴展的流數據平台。它包含兩個功能,數據集成和流處理。
Kafka Connect則是為數據集成而生。

多年來,Kafka已經成為處理大數據流的平台標准,成千上萬的公司在使用它。程序員在構建它們的平台的時候也遇到一些問題:

  • Schema管理
  • 容錯
  • 並行化
  • 數據延遲
  • 分發擔保
  • 運營與監控

這些棘手的問題都要程序員去處理,如果有一個統一的框架去完成這些事情,將可以大大減少程序員的工作量,因此Kafka 0.9中提供了這一特性,負責處理這些問題。

Kafka背后的公司confluent鼓勵社區創建更多的開源的connector,將Kafka生態圈壯大起來,促進Kafka Connnect的應用。

Kafka Connnect有兩個核心概念:Source和Sink。 Source負責導入數據到Kafka,Sink負責從Kafka導出數據,它們都被稱為Connector。

當前Kafka Connect支持兩種分發擔保:at least once (至少一次) 和 at most once(至多一次),exactly once將在未來支持。

當前已有的Connectors包括:

Connector Name Owner Status
 HDFS confluent-platform@googlegroups.com Confluent supported
JDBC confluent-platform@googlegroups.com Confluent supported
Debezium - CDC Sources debezium@gmail.com Community project  
 MongoDB Source  a.patelli@reply.de
 a.topchyan@reply.de
In progress 
 MQTT Source tomasz.pietrzak@evok.ly Community project 
 MySQL Binlog Source wushujames@gmail.com In progress 
Twitter Source  rollulus@xs4all.nl In progress  
 Cassandra Sink  Cassandra Sink  Community project 
Elastic Search Sink ksenji@gmail.com Community project
Elastic Search Sink hannes.stockner@gmail.com In progress
Elastic Search Sink a.patelli@reply.de
 a.topchyan@reply.de
In progress 
Apache Ignite Sink Apache Ignite Project

Community project

(Planned for Apache Ignite 1.6 Release)

Connectors的發布和開發可以參照官方文檔。如果以前你通過producer API/consumer API寫了一些導入導出的功能,不妨嘗試一下換成Kafka Connect,看看是否簡化了你的代碼,提高了應用可擴展和容錯的能力。

參考文檔

    1. http://www.confluent.io/blog/announcing-kafka-connect-building-large-scale-low-latency-data-pipelines
    2. http://www.confluent.io/developers/connectors
    3. http://kafka.apache.org/documentation.html#connect

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM