Jar KafkaTestUtils: počkajte, kým hlásenie v téme by byť konzumované

0

Otázka

Tak som sa stretávajú zaujímavé situácie:

V mojom integrácie test som odosielanie údajov na 2 témy, a mali by byť spotrebované žiadosť objednávky. Na prvý - userTopic, potom shoud byť konzumované userOrderTopic.

Keď som poslať moje správy v teste, odošle veľmi rýchlo, v rovnakom čase. Ale niekedy, aby konzumácia tým, že aplikácia je odlišná. (userOrder témy, a potom userTopic), čo prestávky môj test na všetkých.

Našiel som nejaké triks, ako by som mohol vyhnúť - niť spánku, atď. Ale verím, že je to zlé riešenie.

Som nový s kafka, ako výsledok s KafkaTestUtils. Existuje nejaký spôsob, ktorý by mohol zistiť, že správy v téme bola spotrebovaná/check kým správu, že bol spotrebovaný?

Niečo ako toto:

//check that message in userTopic was consumed, to have a chance send message to userOrderTopic 
KafkaTestUtils.waitUntilBeConsumed(serverBootstrap, "user-consumer", topic, 0, messageToUserTopic)

alebo

KafkaTestUtils.getNowConsumedMessage(serverBootstrap, "user-consumer", topic, 0)

P. S. v mojom intergration test nemám accsess výrobcov/spotrebiteľa.

Alebo možno na jar.kafka /jar.kafka.skúšky sú ďalšie nástroje na to v správnej ceste?

1

Najlepšiu odpoveď

0

KafkaTestUtils je len na náročné z testu spotrebiteľov nie je reálne aplikácie spotrebiteľov.

Nie je jednoduché riešenie pre tento závod stave; musíte počkať na prvý záznam na konzumáciu pred odoslaním druhý.

2021-11-23 21:03:32

Takže, je tam žiadny spôsob, ako zistiť, že správa bola cosumed? Ako vyzerá ako niť.spánok nie je zlý nápad
Gary Russell

Existuje niekoľko rôznych techník, napríklad - ak váš poslucháč hovory služba, pridajte posmívati/čap služby vo vašej test case a čakať na to, aby sa nazýva; - pridať RecordInterceptor aby poslucháč kontajner výrobné vo vašom test case a čakať na interceptor, ktoré sa nazývajú; - pridanie servera proxy okolo poslucháč, ktorý odpočítava západku v test case - pozri stackoverflow.com/questions/53678801/... príklad.

vďaka za vysvetlenie

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................