Добавить отказоустойчивость в AWS Firehose

74
8

Я использую Lambda для отправки пакетных сообщений в Redshift через Firehose. В соответствии с документами Firehose API, если есть проблема с доставкой (отравленное сообщение, конечные точки и т.д.), Firehose будет пытаться в течение 24 часов и удалить сообщение. Я хотел бы переместить сообщение об ошибке в другую очередь после неудачных попыток X (по существу, как SQS Redrive Policy). Какой лучший способ сделать это, желательно без перекрестной проверки целевой базы данных Redshift?

спросил(а) 2016-02-16T15:54:00+03:00 5 лет назад
1
Решение
97

По вашей ссылке, я предполагаю, что вы заинтересованы в отслеживании сбоев PutRecord в потоке Firehose Kinesis, а не в потоке Kinesis → S3 → Redshift.

Когда вы инициализируете своего клиента Firehose, вы можете фактически указать количество попыток, которые вы хотите выполнить. Когда полученное исключение (отказ PutRecord к потоку), Firehose будет автоматически проверять максимальные повторы, которые вы установили; это делается под капотом, в SDK, поэтому вы не будете знать, что ваши повторные попытки были превышены, пока вы не забудете об исключении. Когда вы получите это исключение, вы можете предположить, что повторные попытки были превышены. Эта обработка исключений может включать отправку сообщения в очередь SQS.

Вы можете узнать больше о своей конфигурации клиента Firehose здесь, это не очень хорошо известно, но очень полезно. Firehose ClientConfiguration.

ответил(а) 2016-02-28T04:53:00+03:00 5 лет назад
43

Это можно сделать по-разному по-другому, а не в прямом пути от пожарной машины.

Вы можете использовать функцию лямбда-функции firehose, которая будет писать на S3. Создайте аналитику кинезитов, которая читает из firehose. Настройка различных потоков при анализе кинезитов Успешные записи (In-Stream) перейдут на firehose, который будет загружен в redshift. Записи ошибок (поток ошибок) будут загружены в другой пожар, который будет загружен в S3.

У вас есть успешные записи, загруженные в красное смещение и неудачные записи, отфильтрованные до S3.

Это подход, за которым мы следуем, дайте мне знать, если вам нужны какие-либо разъяснения по этому поводу.

ответил(а) 2017-09-05T20:10:00+03:00 3 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема