Takže, stál jsem zajímavé situaci:
V mém testu integrace odeslat data na 2 témata, a měly by být spotřebovány aplikace na objednávku. Na první userTopic, pak by mělo být konzumovány userOrderTopic.
Když jsem poslal své zprávy v testu, pošle opravdu rychle, ve stejnou dobu. Ale někdy, aby z náročné tím, že aplikace je odlišná. (userOrder téma, pak userTopic), co láme test.
Našel jsem nějaké triks, jak bych se tomu mohla vyhnout - nit spánku, atd. Ale věřím, že je to špatné řešení.
Jsem nový s kafkou, jako výsledek s KafkaTestUtils. Existuje nějaká metoda, která by mohla zkontrolovat, že zpráva v tématu bylo spotřebováno/odhlášení, dokud zprávu, že bylo spotřebováno?
Něco jako toto:
//check that message in userTopic was consumed, to have a chance send message to userOrderTopic
KafkaTestUtils.waitUntilBeConsumed(serverBootstrap, "user-consumer", topic, 0, messageToUserTopic)
nebo
KafkaTestUtils.getNowConsumedMessage(serverBootstrap, "user-consumer", topic, 0)
P. S. v mém integrace test nemám accsess producentů/spotřebitelů.
Nebo možná na jaře.kafka /jaro.kafka.zkoušky jsou další nástroje, dělat to správným způsobem?