Несколько подробностей о контексте. У меня есть приложение со следующим потоком:
Поместите 10k сообщений во ввод topi c.
Кафка приложение 1 будет принимать сообщения из ввода topi c и записи в mid topi c (используя ровно один раз с идемпотентным производителем, записывающим смещения потребителя для ввода topi c плюс сообщение в mid topi c)
Kafka App 2 будет принимать сообщения из середины топи c и записывать в выходные данные топи c (используя ровно один раз с идемпотентным производителем, записывающим смещения потребителя для середины топи c плюс сообщение для вывода топи c)
Ожидайте 10 тыс. Сообщений в выводе все прошло хорошо при обработке сообщений и:
убийство с -9 экземплярами Zk и повторный запуск экземпляра
убийство с -9 брокерами Kafka и снова запуск брокера
- * 10 32 * убийство с -9 Kafka App 1 и повторное запуск приложения
убийство с -9 Kafka App 2 и повторное запуск приложения
В вышеупомянутых 4 случаях достигается ровно один раз, и я не теряю сообщения и у меня нет дубликатов.
Однако при обработке сообщений и случайном убийстве с помощью -9 экземпляров Zk и брокеров Kafka (параллельно) я видел, что я теряю сообщения.
Ожидается ли это?