У меня та же ситуация, что описана в Структурированная пересылка Spark из kafka - последнее сообщение обрабатывается снова после возобновления с контрольной точки. Когда я перезапускаю свое задание искры после сбоя, последнее сообщение снова обрабатывается. Один из ответов предполагает, что приемник должен быть идемпотентным. Я не уверен, что хорошо понимаю это.
Прямо сейчас я пишу в приемник ES, и 3 метода реализованы следующим образом:
- открытый метод возвращает истину
- метод обработки делает Http-публикацию в ES
- метод close закрывает соединение
Я хотел бы знать, как сделать идемпотентный приемник ES, а также как использовать 2 параметра partitionId и version в методе open, чтобы вернуть false, если данные уже были обработаны.
Заранее спасибо.