Что такое Dead Letter Queue

Python Middle Без компании
Что такое Dead Letter Queue
Ответы
Dead Letter Queue (DLQ) — это специальная очередь сообщений, куда попадают сообщения, которые не могут быть обработаны по разным причинам (например, ошибки обработки, истечение срока жизни сообщения, превышение лимита попыток обработки). DLQ помогает избежать потери данных и упрощает отладку проблем. Пример с AWS SQS и boto3: ``` import boto3 sqs = boto3.client('sqs') # Создание основной очереди с DLQ dlq_response = sqs.create_queue(QueueName='my-dlq.fifo') dlq_arn = sqs.get_queue_attributes( QueueUrl=dlq_response['QueueUrl'], AttributeNames=['QueueArn'] )['Attributes']['QueueArn'] # Настройка redrive policy для основной очереди redrive_policy = { 'deadLetterTargetArn': dlq_arn, 'maxReceiveCount': '3' # После 3 неудачных попыток — в DLQ } sqs.create_queue( QueueName='main-queue.fifo', Attributes={ 'RedrivePolicy': json.dumps(redrive_policy) } ) ``` Ключевые особенности DLQ: - Сохраняет "мертвые" сообщения для последующего анализа - Позволяет настроить политику повторных попыток - Поддерживается в RabbitMQ, Kafka, AWS SQS и других брокерах сообщений