Не удалось создать или проверить каталог данных для EmbeddedKafkaBroker - PullRequest
1 голос
/ 13 октября 2019

Я пытаюсь запустить простой модульный тест с использованием аннотации @EmbeddedKafka. Для справки я следую приведенной ниже весенней документации https://docs.spring.io/spring-kafka/reference/html/#embedded-kafka-annotation

@RunWith(SpringRunner.class)
@DirtiesContext
@EmbeddedKafka(brokerProperties = "log.dir=/kafka-logs", partitions = 1,
    topics = {
        "dare_policy_created"})
@Slf4j
public class ConsumerTest {

@Autowired
  private EmbeddedKafkaBroker embeddedKafka;

@Test
  public void someTest() {
    Map<String, Object> consumerProps = KafkaTestUtils.consumerProps("testGroup", "true", this.embeddedKafka);
    consumerProps.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
    ConsumerFactory<Integer, String> cf = new DefaultKafkaConsumerFactory<>(consumerProps);
    Consumer<Integer, String> consumer = cf.createConsumer();
    this.embeddedKafka.consumeFromAnEmbeddedTopic(consumer, "dare_policy_created");
    ConsumerRecords<Integer, String> replies = KafkaTestUtils.getRecords(consumer);
    //assertThat(replies.count()).isGreaterThanOrEqualTo(1);
  }
}

Я пытался определить log.dir @EmbeddedKafka (brokerProperties = "log.dir ="), потому что я получал ошибкупри запуске теста.

Я пытался:

  • log.dir = / kafka-logs
  • log.dir = real_path_to_my_project / kafka-logs
  • ...

Но каждый раз, когда я запускаю тест, я получаю эту ошибку:

kafka.server.LogDirFailureChannel.error - Failed to create or validate data directory /kafka-logs java.io.IOException: Failed to load /kafka-logs during broker startup

kafka.log.LogManager.fatal - Shutdown broker because none of the specified log dirs from /kafka-logs can be created or validated

1 Ответ

1 голос
/ 01 ноября 2019

Мне удалось решить проблему, удалив явную зависимость от kafka-client. У меня была ниже зависимость в моем поме

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>2.3.0</version>
</dependency>
...