Сессия ZooKeeper истекла в тестах - PullRequest
0 голосов
/ 21 апреля 2019

Я использую EmbeddedKafka для тестирования моего модуля со следующей конфигурацией аннотаций:

@ExtendWith(SpringExtension.class)
@SpringBootTest
@TestPropertySource(locations = "classpath:test.properties")
@EmbeddedKafka(partitions = 1,
    topics = {"topic"},
    brokerProperties = {
        "auto.create.topics.enable=${topics.autoCreate:false}",
        "delete.topic.enable=${topic.delete:true}",
        "broker.id=2"})

Это работает в большинстве случаев.

Но иногда ,при создании контекста Spring происходит сбой, поскольку время сеанса zookeeper истекло:

java.lang.IllegalStateException: не удалось загрузить ApplicationContext в

...

в java.base / java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128) в java.base / java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:6grain или org.ing).concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run (ThreadFactoryImpl.java:55) в java.base / java.lang.Thread.run (Thread.java:834) Вызвано: org.springframework.beans.factory.BeanCreationException: ошибкас именем 'embeddedKafka': сбой вызова метода init;вложенное исключение составляет org.apache.zookeeper.KeeperException $ SessionExpiredException: KeeperErrorCode = Сессия просрочена на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1745) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:410) в org.springframework.kafka.test.context.EmbeddedKafkaContextCustomizer.customizeContext (EmbeddedKafkaContextCustomizer.java:106) в org.springframework.boot.test.context.SpringBootContextLoader $ ContextCustomizerAdapter.initialize (SpringBootContextLoader.java: 320) по адресу org.springframework.boot.SpringApplication.applyInitializers (SpringApplication.java:649) по адресу org.springframework.boot.SpringApplication.prepareContext (SpringApplication.java:373) по адресу org.springframework. Spring.pplication.prot.Java: 314) в org.springframework.boot.test.context.SpringBootContextLoader.loadContext (SpringBootContextLoader.Еще 73 причины: org.apache.zookeeper.KeeperException $ SessionExpiredException: KeeperErrorCode = Срок действия сеанса истек в org.apache.zookeeper.KeeperException.create (KeeperException.java:130) в kafka.zk.KafkaZkentCheent ().scala: 1631) по адресу kafka.zk.KafkaZkClient.registerBroker (KafkaZkClient.scala: 87) по адресу kafka.server.KafkaServer.startup (KafkaServer.scala: 257) по адресу kafka.utils.TestUtils $ .createServer:) в kafka.utils.TestUtils.createServer (TestUtils.scala) в org.springframework.kafka.test.EmbeddedKafkaBroker.afterPropertiesSet (EmbeddedKafkaBroker.java:215) в org.springframework.beans.wirebCapableBeanFactory.invokeInitMethods (AbstractAutowireCapableBeanFactory.java:1804) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initialize * *знаете, почему это случилось?Зачем вообще нужен ZooKeeper при использовании EmbeddedKafka ??

Буду признателен за любую помощь.

...