Как исправить ошибку от встроенной кафки, которая не может найти meta.properties - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь сделать интеграционный тест для приложения, использующего kafka, kafka-streams и cassandra.Но когда я пытаюсь установить тестовый класс, у меня появляется 2 ошибки: ОШИБКА [main] BrokerMetadataCheckpoint: не удалось прочитать файл meta.properties в каталоге dir ОШИБКА [main] KafkaServer: не удалось прочитать meta.properties в каталоге журнала

Я использую spring-boot-starter 2.1.2, spring-boot-starter-test 2.1.2, spring-kafka 2.2.0, spring-kafka-test 2.2.0, apache.kafka-streams 2.1.0

пытается изменить параметры logs.dir и logs.dirs.use @EnableKafka @ EnableKafkaStreams

@RunWith(SpringRunner.class)
@SpringBootTest
@EmbeddedKafka(partitions = 3, controlledShutdown = false, count = 1, topics = {"zc.deviceposition"}, brokerProperties = {"listeners=PLAINTEXT://localhost:9092", "port=9092", "log.dir=/home/name/logs"})
@EmbeddedCassandra(timeout = 60000)
@CassandraDataSet(value = {"bootstrap_test.cql"}, keyspace = "statistics")
@ActiveProfiles("test")
@DirtiesContext
public class CassandraTripsAggregatorProcessorSupplierIntegrationTest {
  @Test
  public void someTest() {System.out.println("hello world");}
}

Я ожидаю запуска контекста со встроенным kafka, но сейчас я получаю сообщение об ошибке, что meta.properties не существует

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Я проверил исходный код kafka, чтобы увидеть, что на самом деле происходит:

В этом классе выдается сообщение об ошибке . Во время запуска сервера kafka файл meta.properties читается и создается, если он не существует ( см. Здесь ).

Так что я думаю, что с этим ничего нельзя поделать, так как на самом деле это не ошибка, но, вероятно, уровень журнала в коде kafka неверен.

0 голосов
/ 12 апреля 2019

Поскольку вы используете собственный log.dir в свойствах вашего брокера, одним из решений является создание файла meta.properties в вашем каталоге журналов с минимальной конфигурацией:

version=0
broker.id=0

Я бы также порекомендовалпоместить этот файл и каталог где-нибудь в тестовом каталоге вашего проекта (то есть не обязательно в / home /) и убедиться, что он очищается должным образом после каждого запуска теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...