Итак, я столкнулся с интересной ситуацией:
В своем интеграционном тесте я отправляю данные в 2 темы, и они должны быть использованы приложением по заказу. Сначала - userTopic, затем следует использовать userOrderTopic.
Когда я отправляю свои сообщения в тестовом режиме, они отправляются очень быстро и в то же время. Но иногда порядок потребления по приложениям отличается. (Тема заказа пользователя, затем userTopic) что вообще нарушает мой тест.
Я нашел несколько триков, как я мог этого избежать - сон потока и т. Д. Но я считаю, что это плохое решение.
Я новичок в кафке, как и в случае с КафкаТестУлами. Есть ли какой-либо метод, который мог бы проверить, что сообщение в теме было израсходовано/проверить, пока это сообщение не было израсходовано?
Что - то вроде этого:
//check that message in userTopic was consumed, to have a chance send message to userOrderTopic
KafkaTestUtils.waitUntilBeConsumed(serverBootstrap, "user-consumer", topic, 0, messageToUserTopic)
или
KafkaTestUtils.getNowConsumedMessage(serverBootstrap, "user-consumer", topic, 0)
P.S. в моем тесте интеграции у меня нет доступа к производителю/потребителю.
Или, может быть, в spring.kafka /spring.kafka.test есть еще один инструмент, чтобы сделать это должным образом?