У меня есть IntegrationFlow для приема сообщений от Kafka и маршрутизации их к конечным точкам сообщений, которые являются потребителями в этом сценарии. Я запускаю интеграционные тесты, чтобы тестировать сообщения, проходящие через поток интеграции, используя упомянутый здесь подход Как выполнить модульное тестирование Spring IntegrationFlow?
Странная вещь происходит, когда я запускаю свои интеграционные тесты отдельно, они успешно выполняются ипройти через все каналы, но когда я запускаю их как набор тестов, всегда повторяется второй тест, и сообщение не проходит через каналы. Я создал KafkaConsumer, чтобы гарантировать, что сообщение уже доставлено в тему.
Вот мой IntegrationFlow:
@Bean
public IntegrationFlow documentCreatedFlow() {
return IntegrationFlows
.from(Kafka.messageDrivenChannelAdapter(consumerFactory, KafkaMessageDrivenChannelAdapter.ListenerMode.record, Topics.DOCUMENT_CREATED))
.gateway(f -> f
.transform(new DocumentCreatedTransformer())
.route(messageRouter()),
e -> e.advice(retryAdvice())
)
.get();
}
Второе сообщение во втором работающем тесте не перемещается с from
на gateway
в вышеуказанном потоке. Я ценю любую помощь в этом.