Bu yüzden ilginç bir durumla karşı karşıya kaldım:
Entegrasyon testimde 2 konuya veri gönderiyorum ve uygulama tarafından siparişe göre tüketilmeleri gerekiyor. İlk başta-userTopic, sonra userOrderTopic tüketilmelidir.
Mesajlarımı testte gönderdiğimde, aynı anda çok hızlı bir şekilde gönderiliyor. Ancak bazen, uygulama ile tüketme sırası farklıdır. (userOrder konusu, sonra userTopic) testimi hiç bozan şey.
Bazı trikler buldum, bundan nasıl kaçınabilirim - iplik uykusu, vb. Ama bunun kötü bir çözüm olduğuna inanıyorum.
Kafka ile yeniyim, sonuç olarak KafkaSestUtils ile. Bu mesajın tüketilene kadar bu mesajın tüketildiğini/kontrol edildiğini kontrol edebilecek herhangi bir yöntem var mı?
Bunun gibi bir şey:
//check that message in userTopic was consumed, to have a chance send message to userOrderTopic
KafkaTestUtils.waitUntilBeConsumed(serverBootstrap, "user-consumer", topic, 0, messageToUserTopic)
veya
KafkaTestUtils.getNowConsumedMessage(serverBootstrap, "user-consumer", topic, 0)
P. S. entegrasyon testimde üretici / tüketiciye erişimim yok.
Ya da belki ilkbaharda.kafka / bahar.kafka.test uygun bir şekilde bunu yapmak için başka bir alet var mı?