如何建立自定義Apache Kafka聯結器(Kafka Connectors) - Prashanna
Kafka Connect是一個框架,可幫助Kafka連線外部系統,例如資料庫,檔案系統等,反之亦然。
我們處理兩種型別的聯結器:
- 源聯結器:這種型別的聯結器有助於將資料從外部系統簡化為Kafka Topic。
- 接收器聯結器:這種型別的聯結器有助於將資料從Kafka Topic簡化到外部系統。
聯結器通常將給定的工作劃分為較小的任務,並在內部將其分配給工人。工作者是執行聯結器分配的任務的過程。
市場上有很多這類聯結器可供使用,可在Confluent官方網站:https://www.confluent.io/hub/
自定義Kafka聯結器的需求在兩種情況下出現:
- 當現有的Kafka聯結器無法滿足您的需求時,將其引入用例的目的
- 許可問題
因此,引入了“定製Kafka聯結器”的概念,以建立可幫助使用者滿足要求的聯結器,並退出複雜的許可策略。
注意原則:
建立一個Maven Java專案,並將以下maven依賴項新增到pom.xml檔案中。
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>connect-api</artifactId> </dependency> |
1.配置類:此類用於描述將用於我們的聯結器的配置屬性。Java類需要擴充套件AbstractConfig類。
import org.apache.kafka.common.config.AbstractConfig; |
2. SourceConnector或SinkConnector類:此類在聯結器的實現邏輯所駐留的抽象級別上。根據建立的聯結器的型別,應擴充套件相應的類。
import org.apache.kafka.connect.sink.SinkTask; import org.apache.kafka.connect.source.SourceTask; |
這些類的下面方法應該被實現覆蓋:
1)start 2)stop 3)taskClass 4)taskConfigs 5)config 6)version |
3.SourceTask或SinkTask類:此類是任務功能(聯結器用途)所在的位置。根據建立的聯結器的型別,應擴充套件相應的類。
import org.apache.kafka.connect.sink.SinkConnector; import org.apache.kafka.connect.source.SourceConnector; |
需要覆蓋方法:
1)start 2)stop 3)poll or put(Based on the Connector Type) 4)version |
除了這些類之外,該聯結器還需要兩個屬性檔案才能在Kafka Environment中執行。
- Config.properties:此檔案將包含執行聯結器所需的配置。聯結器的配置類別將使用此資料進行填充。
- Standalone.properties或Distributed.properties:Kafka環境通常以Standalone模式或Distributed(Clustered)模式設定。根據模式的型別,各個檔案將填充有所需屬性,例如bootstrap.servers,rest.port,group.id等。
詳細參考:
https://docs.confluent.io/current/connect/devguide.html
相關文章
- Kafka聯結器建立資料管道Kafka
- Kafka - 自定義分割槽器Kafka
- Apache-Flink深度解析-DataStream-Connectors之KafkaApacheASTKafka
- Apache Kafka教程--Kafka新手入門ApacheKafka
- 開源Apache KafkaApacheKafka
- Apache-Kafka簡介ApacheKafka
- Apache Kafka 3.0.0釋出ApacheKafka
- Apache Kafka 移除 ZK ProposalsApacheKafka
- 什麼是 Apache Kafka?ApacheKafka
- Apache Kafka設計思考ApacheKafka
- Spring Cloud Stream如何深度支援Apache Kafka?SpringCloudApacheKafka
- Apache Kafka監控之Kafka Web ConsoleApacheKafkaWeb
- apache kafka系列之在zookeeper中儲存結構ApacheKafka
- Yahoo開源的Apache Kafka管理工具:Kafka ManagerApacheKafka
- 如何在 Rocky Linux 上安裝 Apache Kafka?LinuxApacheKafka
- Apache Kafka 的基本概念ApacheKafka
- apache kafka監控系列-KafkaOffsetMonitorApacheKafka
- Apache Kafka監控之KafkaOffsetMonitorApacheKafka
- Apache kafka 工作原理介紹ApacheKafka
- Apache Kafka – 叢集架構ApacheKafka架構
- 彈性整合Apache Mesos與Apache Kafka框架ApacheKafka框架
- 如何在Windows上脫離Cygwin執行Apache KafkaWindowsApacheKafka
- Apache Kafka 程式設計實戰ApacheKafka程式設計
- 重磅!Apache Kafka 3.3 正式釋出!ApacheKafka
- Apache Kafka 12個最佳實踐ApacheKafka
- apache kafka原始碼分析-Producer分析ApacheKafka原始碼
- Apache Kafka訊息傳遞策略ApacheKafka
- Apache Kafka各Api模組說明ApacheKafkaAPI
- Kafka詳解二、如何配置Kafka叢集Kafka
- kafka面試總結Kafka面試
- DoorDash如何使用 Apache Kafka 和 Elasticsearch 構建更快的索引?ApacheKafkaElasticsearch索引
- 如何在Ubuntu-16.04上配置Apache Kafka叢集!UbuntuApacheKafka
- Apache Kafka不是資料庫:資料庫+Kafka=完整ACID - fivetranApacheKafka資料庫
- Kafka原理剖析之「Topic建立」Kafka
- kafka zookeeper docker容器互聯KafkaDocker
- 用 《異星工廠》遊戲形象理解Apache Kafka - Ruurtjan遊戲ApacheKafka
- Apache Kafka分散式訊息系統ApacheKafka分散式
- Apache Kafka-0.8.1.1原始碼編譯ApacheKafka原始碼編譯