Kafka Connect簡介

acac5234 8年前發布 | 129K 次閱讀 Kafka 消息系統

來自: http://colobu.com/2016/02/24/kafka-connect/

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
推ter 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
  4. </ol> </div>

 本文由用戶 acac5234 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!