使用Microsoft/CSharpClient-for-Kafka库.net在kafka中编程创建主题

本文关键字:编程 创建 kafka Microsoft CSharpClient-for-Kafka net 使用 | 更新日期: 2023-09-27 17:53:08

嗨,我想知道。net库中是否有类似的API用于以相同的方式创建主题AdminUtils.createTopic(zkClient, myTopic, 10, 1, new Properties());

是否可用于Java客户端?否则,我将如何去编程创建一个主题?

谢谢。

使用Microsoft/CSharpClient-for-Kafka库.net在kafka中编程创建主题

目前在客户端库中没有允许您这样做的Admin API。请参阅。net客户端GitHub上的问题#48。

根据您如何配置代理(auto.create.topics.enable),您可以在将生产者或消费者附加到主题后自动创建主题。这种方法的缺点是,您不能轻松地使用不同的设置来设置主题,因为它们将使用代理中配置的默认设置来设置。

一个不太好的,但目前唯一全功能的方式来创建主题是简单地调用命令行管理工具(例如kafka-topics)从你的代码,并传递设置作为参数

您可以使用下面的简单方法:

private void CraeteTopic(string eventName)
{
    try
    {
        IAdminClient adminClient = new AdminClientBuilder(this._consumerConfig).Build();
        TopicSpecification topicSpecification = new TopicSpecification();
        topicSpecification.Name = eventName;
        adminClient.CreateTopicsAsync(new[] { topicSpecification });
    }
    catch (CreateTopicsException createTopicsException)
    {
        Console.WriteLine(createTopicsException);
    }
    catch (Exception exception)
    {
        Console.WriteLine(exception);
        throw;
    }
}