文章目錄
使用 C# 體驗 Apache Kafka Streams
幾年前開始使用 Kafka 時,就有注意 Kafka Streams,但當時查資料發現 Kafka Streams 是 Java 的 library (僅支援 Java 與 Scala),並不支援 .NET,最近看技術文章時,看到有人提到使用 Kafka 來 streaming data,雖然內容跟 Apache Kafka Streams 有點不同,但讓我想起 Kafka Streams,於是再次查詢,發現有人寫了一個 .NET library - Streamiz.Kafka.Net,讓 .NET 開發者也能使用 Kafka Streams,於是決定來試試看。
基本環境說明
- macOS Sonoma 14.5 (Apple M2 Pro)
- OrbStack 1.6.3 (17138)
- .NET SDK 8.0.101
- JetBrains Rider 2024.1.4
- NuGet packages
- Streamiz.Kafka.Net 1.5.1
docker images
- quay.io/strimzi/kafka:latest-kafka-3.7.1
- provectuslabs/kafka-ui:v0.7.2
建立 kafka
server.properties
如果要從 docker compose 外部連接到 kafka,需要在
etc/hosts
加上127.0.0.1 kafka
docker-compose
使用方式
目的:將
from
topic 的 message 加上from:
的前綴後,放入to
topic程式碼
效果
from topic
to topic
心得
僅支援單一 kafka cluster
必填參數只有兩個:
ApplicationId
與BootstrapServers
以個人粗淺的看法,我覺得 Kafka Streams 就是將某個 topic 的內容取出來,進行處理後再放回另一個 topic,這樣的概念,事實上跟過去使用 producer 與 consumer 相比並沒有多大的差別,Kafka Streams 提供更高層次的抽象而將 producer 與 consumer 做了封裝
介紹文件:Streamiz.Kafka.Net 還有不少功能,初步看來應該可以符合不同的需求,未來有機會再深入研究
完整程式碼請參考 GitHub:yowko/kafka-streams-demo
參考資訊
文章作者 Yowko Tsai
上次更新 2024-09-23
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。