Apache kafka 使用dotnet客户端将kafka用作数据库

Apache kafka 使用dotnet客户端将kafka用作数据库,apache-kafka,Apache Kafka,我一直在考虑使用Confluent.kafka客户端库从dotnet应用程序中将kafka用作数据库(我读到的是一个合法的用例) 给定一个压缩日志主题,我希望每次应用程序启动时都能从偏移量0读取并在本地缓存结果。然后使用后续消息更新本地缓存 下面的消费者配置有效,但我不确定以这种方式设置消费者是否正确 var config = new ConsumerConfig { BootstrapServers = "localhost:29092", GroupId

我一直在考虑使用Confluent.kafka客户端库从dotnet应用程序中将kafka用作数据库(我读到的是一个合法的用例)

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

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

var config = new ConsumerConfig
{
    BootstrapServers = "localhost:29092",
    GroupId = Guid.NewGuid().ToString(),
    EnableAutoCommit = false
};
为了让运行中的应用程序的多个实例都可以访问,我将GroupId设置为Guid,以确保每个新实例都能获得所有消息

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

代理是否将处理应用程序重复创建新的GroupID

永远都不要承诺是件好事吗


<>我试图做一些我不应该做的事情吗?

fWW,另一个要考虑的路径是KSQL LDB,并用它的REST API从它的DOTNET上调用它。无需轮询、更新或失效然后重新填充缓存。我还不能回答的关键问题是:代理是否将处理数千个GroupID?我现在知道卡夫卡是关于可伸缩性的,但这感觉是错误的。groupId应该是静态的并且数量有限,还是使用Guid作为应用程序的每个新实例的groupId是可以接受的。我不知道你的问题的答案,抱歉。但是请看一下ksqlDB,特别是pull查询——它直接从Kafka构建和维护本地缓存,您只需查询它。