簡體   English   中英

Kafka Connect 還是 Kafka Streams?

[英]Kafka Connect or Kafka Streams?

我需要從主題中讀取消息,根據提供的配置豐富消息(豐富所需的數據來自外部系統),並將豐富的消息發布到 output 主題。 關於 source 和 output 主題的消息應該是 Avro 格式。

這是自定義 Kafka 連接器的好用例還是我應該使用 Kafka Streams?

為什么我要考慮 Kafka Connect?

  • 在代碼和部署方面輕量級
  • 配置驅動
  • 連接和錯誤處理
  • 可擴展性
  • 我喜歡 Connect 中基於插件的方法。 如果有需要處理的新型消息,我只需部署一個新的連接器,而無需部署完整的 Java 應用程序。

為什么我不確定這是否適合 Kafka Connect?

  • 調用外部系統
  • Kafka 可以同時作為連接器的源和接收器嗎?
  • 我們可以在連接器中使用 Avro 模式嗎?
  • 負載下的性能
  • 不能做狀態處理(目前沒有要求)
  • 我有使用 Kafka Streams 的經驗,但沒有使用 Connect

兩者都用?

使用 Kafka Connect 將外部數據庫導入主題。

使用 Kafka Streams 將該主題構建到一個流/表中,然后可以對其進行操作。

根據需要,使用 Kafka Connect 沉入數據庫或 Kafka 以外的其他系統。


Kafka Streams 也可以是配置驅動的,使用插件(即反射),同樣具有可擴展性,並且沒有不同的連接模式(到 Kafka)。 性能應該是相似的。 錯誤處理實際上是唯一復雜的部分。 ksqlDB 完全是通過 SQL 語句“配置驅動”的,可以連接到外部 Connect 集群,或嵌入自己的集群。

是的,Avro 對兩者都適用。

一些連接器暫時是有狀態的,因為它們構建內存中的批處理,例如 S3 或 JDBC 接收器連接器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM