Kafka 本身并没有提供直接删除主题的功能,但你可以通过以下方法记录主题删除的日志:
kafka-topics.sh
。在删除主题时,这个工具会输出一些关于操作的信息。你可以将这些信息重定向到一个日志文件中,以便记录和跟踪。例如:./kafka-topics.sh --delete --topic your_topic_name --bootstrap-server localhost:9092
将上述命令的输出重定向到日志文件:
./kafka-topics.sh --delete --topic your_topic_name --bootstrap-server localhost:9092 > delete_topic_log.txt
import org.apache.kafka.clients.admin.*;
import org.apache.kafka.common.config.ConfigResource;
import java.util.Collections;
import java.util.Properties;
public class DeleteTopicLogger {
public static void main(String[] args) throws Exception {
String bootstrapServers = "localhost:9092";
String topicName = "your_topic_name";
Properties adminClientProps = new Properties();
adminClientProps.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
try (AdminClient adminClient = AdminClient.create(adminClientProps)) {
// 删除主题前先检查主题是否存在
ListTopicsResult listTopicsResult = adminClient.listTopics();
if (listTopicsResult.names().get().contains(topicName)) {
// 删除主题
DeleteTopicsResult deleteTopicsResult = adminClient.deleteTopics(Collections.singletonList(topicName));
deleteTopicsResult.all().get();
// 记录日志
System.out.println("Topic deleted: " + topicName);
} else {
System.out.println("Topic not found: " + topicName);
}
}
}
}
将上述代码编译并运行,删除主题时,操作信息将被记录到控制台。你可以将控制台的输出重定向到一个日志文件中,以便记录和跟踪。