По умолчанию Beam IOs предназначены для продолжения попыток записи / чтения / обработки элементов до. (Пакетные конвейеры не будут работать после повторных ошибок)
То, на что вы ссылаетесь, обычно называется Очередь мертвых писем , чтобы взять ошибочные записи и добавить их в PCollection, Pubsub topi c, служба очередей и др. c. Это часто возможно по желанию, так как позволяет потоковому конвейеру совершать прогресс (не блокировать), когда встречаются ошибки при записи некоторых записей, но допускает записи, которые успешно записываются.
К сожалению, если я не ошибаюсь в IO Кафки нет очереди недоставленных сообщений. Может быть возможно изменить KafkaIO для поддержки этого. Были некоторые обсуждения списка рассылки луча с некоторыми идеями, предложенными для реализации этого, которые могли бы иметь некоторые идеи .
Я подозреваю, что можно было бы добавить это к KafkaWriter , перехватывает записи, которые не удалось, и выводит их в другую коллекцию PC. Если вы решите реализовать это, пожалуйста, также обратитесь к списку рассылки сообщества , если вы хотите помочь объединить его с master, они смогут убедиться, что изменение охватывает необходимые требования, чтобы оно могло быть объединены и имеют смысл в целом для луча.
Затем ваш конвейер может записать их в другом месте (то есть в другом источнике). Конечно, если этот вторичный источник одновременно имеет сбой / проблему, вам потребуется еще один DLQ.