Então, eu enfrentei uma situação interessante:
No meu teste de integração de eu enviar dados para 2 tópicos, e eles devem ser consumidos pelo aplicativo por ordem de chegada. Na primeira userTopic, em seguida, devem ser consumidos userOrderTopic.
Quando eu enviar minhas mensagens no teste, ele envia muito rapidamente, ao mesmo tempo. Mas, às vezes, a fim de se consumir pela aplicação é diferente. (userOrder tópico, então userTopic) que quebra o meu teste.
Eu encontrei alguns triks, como eu poderia evitá - lo- suspensão do thread, etc. Mas eu acredito que é uma má solução.
Eu sou novo com kafka, como resultado com KafkaTestUtils. Não há nenhum método, que poderia verificar que a mensagem no tópico foi consumida/verificar até que a mensagem foi consumido?
Algo como isto:
//check that message in userTopic was consumed, to have a chance send message to userOrderTopic
KafkaTestUtils.waitUntilBeConsumed(serverBootstrap, "user-consumer", topic, 0, messageToUserTopic)
ou
KafkaTestUtils.getNowConsumedMessage(serverBootstrap, "user-consumer", topic, 0)
P. S. na minha integração teste de eu não ter accsess produtor/consumidor.
Ou talvez na primavera.kafka /primavera.kafka.teste outro ferramentas para fazê-lo de forma adequada?