首页 > 解决方案 > 使用 dotnet 客户端使用 kafka 作为数据库

问题描述

我一直在研究使用 Confluent.Kafka 客户端库从 dotnet 应用程序中使用 kafka 作为数据库(我读过的内容是合法的用例)。

给定一个压缩日志主题,我希望能够在每次应用程序启动时从偏移量 0 读取并在本地缓存结果。然后消费后续消息更新本地缓存。

以下消费者配置有效,但我不确定以这种方式设置消费者是否正确。

var config = new ConsumerConfig
{
    BootstrapServers = "localhost:29092",
    GroupId = Guid.NewGuid().ToString(),
    EnableAutoCommit = false
};

为了让应用程序的多个实例运行,我将 GroupId 设置为 Guid,以确保每个新实例都能获取所有消息。

为了始终从偏移量 0 读取,我将 EnableAutoCommit 设置为 false,并且我没有手动提交以不更新偏移量。dotnet 客户端库似乎没有从头开始读取的选项。

代理是否要应对应用程序反复创建新的 GroupIds?

从不做一件好事吗?

我是否试图做一些我不应该做的事情?

标签: apache-kafka

解决方案


推荐阅读