Así que, me enfrenté a la situación interesante:
En mi prueba de integración puedo enviar datos a 2 temas, y que debe ser consumido por aplicación de la orden. En primer userTopic, entonces debe ser consumido userOrderTopic.
Cuando puedo enviar mis mensajes en la prueba, envía muy rápido, al mismo tiempo. Pero a veces, el orden de consumo por aplicación es diferente. (userOrder tema, luego userTopic) lo que rompe mi prueba en absoluto.
He encontrado algunos triks, cómo podía evitarlo - hilo de dormir, etc. Pero yo creo que es una mala solución.
Soy nuevo con kafka, como resultado con KafkaTestUtils. ¿Hay algún método, que podría comprobar que el mensaje en el tema fue consumido/cheque hasta que el mensaje se ha consumido?
Algo como esto:
//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. en mi integración dentro de la prueba que no llegan a tener acceso a productor/consumidor.
O tal vez en primavera.kafka y la primavera.kafka.la prueba son otra de las herramientas para hacerlo de manera adecuada?