Così, ho affrontato la situazione interessante:
Nel mio test di integrazione invio i dati per 2 argomenti, e devono essere consumati dall'applicazione da parte dell'ordine. In un primo momento - userTopic, quindi dovrebbe essere consumato userOrderTopic.
Quando invio i miei messaggi in prova, invia davvero rapidamente, allo stesso tempo. Ma a volte, l'ordine del consumando applicazione è diverso. (userOrder argomento, quindi userTopic) che rompe il mio test a tutti.
Ho trovato alcuni triks, come avrei potuto evitarlo - thread sonno, etc. Ma credo che sia una pessima soluzione.
Eccomi di nuovo con kafka, come risultato con KafkaTestUtils. C'è qualche metodo, che può verificare che il messaggio in argomento è stata consumata/controllare fino a che il messaggio è stato consumato?
Qualcosa di simile a questo:
//check that message in userTopic was consumed, to have a chance send message to userOrderTopic
KafkaTestUtils.waitUntilBeConsumed(serverBootstrap, "user-consumer", topic, 0, messageToUserTopic)
o
KafkaTestUtils.getNowConsumedMessage(serverBootstrap, "user-consumer", topic, 0)
P. S. nel mio integrazione di prova non ho accesso al produttore/consumatore.
O forse in primavera.kafka e la primavera.kafka.test sono altro strumenti per farlo in modo corretto?