如何建立自定義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
- Apache-Flink深度解析-DataStream-Connectors之KafkaApacheASTKafka
- Kafka - 自定義分割槽器Kafka
- Apache Kafka教程--Kafka新手入門ApacheKafka
- Spring Cloud Stream如何深度支援Apache Kafka?SpringCloudApacheKafka
- Apache-Kafka簡介ApacheKafka
- 什麼是 Apache Kafka?ApacheKafka
- Apache Kafka設計思考ApacheKafka
- Apache Kafka 移除 ZK ProposalsApacheKafka
- Apache Kafka 3.0.0釋出ApacheKafka
- 如何在 Rocky Linux 上安裝 Apache Kafka?LinuxApacheKafka
- 1.11.2 flinksql自定義sls connector 聯結器SQL
- Apache Kafka – 叢集架構ApacheKafka架構
- Apache Kafka 的基本概念ApacheKafka
- Apache Kafka不是資料庫:資料庫+Kafka=完整ACID - fivetranApacheKafka資料庫
- 如何在Ubuntu-16.04上配置Apache Kafka叢集!UbuntuApacheKafka
- Apache Kafka 程式設計實戰ApacheKafka程式設計
- Apache Kafka訊息傳遞策略ApacheKafka
- 重磅!Apache Kafka 3.3 正式釋出!ApacheKafka
- Apache Kafka 12個最佳實踐ApacheKafka
- 【Spring Boot 使用記錄】kafka自動配置和自定義配置Spring BootKafka
- DoorDash如何使用 Apache Kafka 和 Elasticsearch 構建更快的索引?ApacheKafkaElasticsearch索引
- Kafka原理剖析之「Topic建立」Kafka
- Flink-Kafka-Connector Flink結合Kafka實戰Kafka
- Apache Kafka不適用於Event Sourcing!ApacheKafka
- Apache Kafka消費者再平衡 | TechMyTalkApacheKafka
- Apache Kafka各Api模組說明ApacheKafkaAPI
- Spring 對Apache Kafka的支援與整合SpringApacheKafka
- kafka SASL認證介紹及自定義SASL PLAIN認證功能KafkaAI
- Kafka聯結器深度解讀之錯誤處理和死信佇列Kafka佇列
- 如何克服 Apache Kafka中的資料順序問題 - DATAVERSITYApacheKafka
- 簡單比較 Apache Kafka 和 Apache Pulsar要點 - JaroslawApacheKafkaJARROS
- Apache Kafka訊息傳遞精確正好一次的含義 | TechMyTalkApacheKafka
- kafka面試總結Kafka面試
- Kafka 總結學習Kafka
- Apache Kafka在沃爾瑪的應用ApacheKafka
- [譯]從LinkedIn,Apache Kafka到Unix哲學ApacheKafka
- Apache Kafka零複製最佳化原理ApacheKafka