【问题标题】:Kafka topic deletionKafka主题删除
【发布时间】:2017-09-18 22:49:58
【问题描述】:

我使用 Kafka 作为事件溯源系统的事件存储。

在集成测试中,我通过运行删除了 Kafka 当前可用的所有主题

kafka-topics.sh --zookeeper localhost:2181 --delete --topic <topic-name> 

对于每个现有主题,确保“旧”数据不会影响以下测试。

我知道这些主题仅被标记为删除,而不是就地删除。而且,在大多数情况下,这对我来说没问题。

但在某些测试用例中,当我再次创建主题时(通过在主题中写入记录),结果并没有被删除。在这种情况下,Kafka 会抛出 UnknownTopicOrPartitionException

我想知道是否有某种方法可以强制 Kafka 删除主题(或至少增加删除的机会)。

如果有任何建议,我将不胜感激。

我正在使用 Kafka 0.11.0.1

【问题讨论】:

    标签: java apache-kafka integration-testing


    【解决方案1】:

    您不必为了丢弃“旧”数据而删除主题。您可以通过停止 Kafka 服务器、删除主题的日志目录并重新启动 Kafka 来实现。

    主题目录位于日志目录中,由代理配置中的log.dir 指定,带有主题名称的前缀。

    【讨论】:

    • 感谢您的回答。问题在于,为每个测试停止和重新启动 Kafka 代理和 Zookeeper 服务器会显着增加测试的执行时间。也许我可以以某种方式避免重新启动?
    • 您不必重新启动 Zookeeper,但我认为您需要重新启动 Kafka 才能让它刷新其文件句柄。
    猜你喜欢
    • 2017-10-17
    • 2014-08-08
    • 2019-07-07
    • 1970-01-01
    • 2022-11-03
    • 2019-06-14
    • 2016-10-31
    • 2018-08-06
    • 2020-03-25
    相关资源
    最近更新 更多