如何使用Spring Kafka在测试中清除主题

3
我正在使用Spring Kafka 2.4编写单元测试,以证明我的Spring Boot设置正确。我正在验证SeekToCurrentBatchErrorHandler是否按预期工作,这需要发送一个不正确的消息,该消息应该被重试。不幸的是,这些错误的消息会破坏其他测试,因为这条消息将一直被重试。
因此,我希望确保每个测试都被正确地隔离。我需要做到以下两点之一:
1. 使用AdminClient删除并重新创建Kafka主题。 2. 将现有的Kafka主题定位到结尾并提交新的偏移量
我正在尝试使用Consumer.seekToEnd()方法进行第二种选项,但是Spring Kafka将创建的消费者隐藏在几层内部框架类后面。我也不确定这个方法是否可以在与监听器线程不同的测试线程中调用。
那么,使用Spring Kafka在测试中清除主题的推荐方法是什么?
1个回答

5
最佳实践是在每个测试中使用唯一的主题名称以提供完全隔离;您也可以停止容器,使用相同的group.id创建一个新的消费者,并在那里执行查找。

1
鉴于您作为Spring for Apache Kafka的首席开发人员的地位,我相信这是正确的,但是这是否有记录为最佳实践的地方呢? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接