со следующим
@KafkaListener(id = "id1", autoStartup = "false", topics = { "topic1", "topic2" }
spring.kafka.consumer.auto-offset-reset=earliest
Предположим, есть несколько сообщений в каждой теме до запуска .start
Когда
KafkaListenerEndpointRegistry.getListenerContainer("id1").start();
вызывается, есть ли гарантия того, что все сообщения из theme1 будут обработаны до topic2 (это то, что я вижу), и что произойдет, если сообщения будут отправлены в topic1, пока topic2 обрабатывается.
+++++++++++++++++++++++++++++++++++++++++++++++ ++
Редактировать
Выполнен следующий тест, каждая тема имеет один раздел.
До запуска теста было 10 сообщений в теме1 и 10 сообщений в теме2.
Запустил код и позволил 10 сообщениям topic1 обрабатываться, но в то время как сообщения topic2, где обрабатывались, я отправлял больше сообщений в topic1, но там, где слушатель не обрабатывал их, пока не были обработаны все существующие ранее сообщения из topic2.
Таким образом, кажется, что сообщения обрабатываются по порядку из массива свойств themes, и любые новые сообщения не обрабатываются, пока не будут обработаны существующие.
Порядок обработки сообщений в
тема1 сообщение 1
тема1 сообщение 2
...
тема1 сообщение 10
тема2 сообщение 1
тема 2 сообщение 2
...
... отправил сообщение 11 в тему 1 в это время
...
тема2 сообщение 10
тема1 сообщение 11