Sparkdo.Kafka
1.0.2-preview.1
.NET 10.0
This package targets .NET 10.0. The package is compatible with this framework or higher.
.NET Standard 2.0
This package targets .NET Standard 2.0. The package is compatible with this framework or higher.
This is a prerelease version of Sparkdo.Kafka.
dotnet add package Sparkdo.Kafka --version 1.0.2-preview.1
NuGet\Install-Package Sparkdo.Kafka -Version 1.0.2-preview.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sparkdo.Kafka" Version="1.0.2-preview.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sparkdo.Kafka" Version="1.0.2-preview.1" />
<PackageReference Include="Sparkdo.Kafka" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Sparkdo.Kafka --version 1.0.2-preview.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Sparkdo.Kafka, 1.0.2-preview.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Sparkdo.Kafka@1.0.2-preview.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Sparkdo.Kafka&version=1.0.2-preview.1&prerelease
#tool nuget:?package=Sparkdo.Kafka&version=1.0.2-preview.1&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Sparkdo.Kafka
Sparkdo Kafka 集成库,提供 Kafka 消息队列的生产者和消费者功能实现。
功能特性
- Kafka 生产者和消费者池管理
- 自动主题创建
- 消息序列化/反序列化支持
- 异常处理和日志记录
- 与 Sparkdo 框架无缝集成
- 支持多连接配置
安装
<PackageReference Include="Sparkdo.Kafka" Version="x.x.x" />
核心组件
ConsumerPool
Kafka 消费者池,负责管理和复用 Kafka 消费者实例:
- 按连接名称和组ID缓存消费者实例
- 线程安全的消费者获取机制
- 自动资源管理和释放
ProducerPool
Kafka 生产者池,负责管理和复用 Kafka 生产者实例:
- 按连接名称缓存生产者实例
- 线程安全的生产者获取机制
- 自动资源管理和释放
KafkaMessageConsumer
Kafka 消息消费者实现,负责订阅主题并处理消息:
- 自动创建不存在的主题
- 支持注册多个消息处理回调函数
- 自动提交消息偏移量
- 异常处理和日志记录
KafkaMessageConsumerFactory
Kafka 消息消费者工厂,用于创建和初始化消费者实例:
- 基于依赖注入容器创建消费者
- 支持不同的连接配置
Utf8JsonKafkaSerializer
UTF-8 JSON 序列化器,提供消息的序列化和反序列化功能:
- 使用 UTF-8 编码
- 基于 Sparkdo JSON 序列化框架
配置
在 appsettings.json 中配置 Kafka 连接信息:
{
"Kafka": {
"Connections": {
"Default": {
"BootstrapServers": "localhost:9092"
}
},
"ConfigureProducer": {
"Acks": "All"
},
"ConfigureConsumer": {
"AutoOffsetReset": "Earliest"
}
}
}
扩展性
该库提供了完整的 Kafka 集成功能实现,可以通过以下方式扩展:
- 实现自定义的
IKafkaSerializer来支持其他序列化格式 - 通过
SparkdoKafkaOptions配置生产者、消费者和主题参数 - 实现自定义的消息处理逻辑
代码结构说明
本项目包含以下主要组件:
池管理
IConsumerPool&ConsumerPool: 消费者池接口和实现IProducerPool&ProducerPool: 生产者池接口和实现
消息处理
IKafkaMessageConsumer&KafkaMessageConsumer: 消息消费者接口和实现IKafkaMessageConsumerFactory&KafkaMessageConsumerFactory: 消息消费者工厂接口和实现
序列化
IKafkaSerializer: 序列化器接口Utf8JsonKafkaSerializer: UTF-8 JSON 序列化器实现
配置
SparkdoKafkaOptions: Kafka 配置选项KafkaConnections: Kafka 连接配置集合SparkdoKafkaModule: Kafka 模块配置
所有公共接口和类都添加了详细的 XML 文档注释,便于开发者理解和使用。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Confluent.Kafka (>= 2.12.0)
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Json (>= 1.0.2-preview.1)
- Sparkdo.Threading (>= 1.0.2-preview.1)
- System.Linq.Dynamic.Core (>= 1.7.0)
- System.Runtime.Loader (>= 4.3.0)
- System.Text.Json (>= 10.0.0)
- TimeZoneConverter (>= 7.2.0)
-
net10.0
- Confluent.Kafka (>= 2.12.0)
- JetBrains.Annotations (>= 2025.2.2)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.0)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.0)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Configuration.UserSecrets (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyModel (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Composite (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Localization (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- Nito.AsyncEx.Context (>= 5.1.2)
- Sparkdo.Json (>= 1.0.2-preview.1)
- Sparkdo.Threading (>= 1.0.2-preview.1)
- System.Linq.Dynamic.Core (>= 1.7.0)
- TimeZoneConverter (>= 7.2.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Sparkdo.Kafka:
| Package | Downloads |
|---|---|
|
Sparkdo.EventBus.Kafka
Sparkdo Kafka 事件总线实现,提供基于 Kafka 的分布式事件发布和订阅功能 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.2-preview.1 | 137 | 12/4/2025 |
| 1.0.1 | 214 | 11/27/2025 |
| 1.0.0 | 208 | 11/25/2025 |
| 1.0.0-preview.5 | 96 | 10/24/2025 |