обычная.
Есть несколько сервисов, один тип сервиса может иметь несколько инстансов но они в одной Consumer Group находятся. Теперь ситуация, крутится 2 инстанса сервиса и тут 1 упал.
1. --- Будут ли все сообщения в partition который был назначен на сервис, который только что умер переданы другому сервису, который работает еще? Есть ли вероятность что сообщения не дойдут и получится что потом будет неправильный порядок? ( в спеке не нашел)
Другой кейс. Упали все 2 сервиса, пролежали минут 5 собралось достаточно много сообщений.
2. ---- Как теперь считать только те сообщения, которые не были обработаны? Некоторые вручную каждый раз при обработке сообщения делают ++ офсету и хранят в локальной бд, но может есть варианты как сделать это прозрачно? Чтобы эти обязанности брал на себя какой-то third party сервис или либа. Потому что в случае если это делать все вручную. То нужно кроме хранения офсета еще стянуть все сообщения и локально их пораскидывать по листенерам
1 - будут 2 - consumer.commitOffset
Обсуждают сегодня