使用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客户端?否则,我将如何去编程创建一个主题?
谢谢。
目前在客户端库中没有允许您这样做的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;
}
}