16 lines
2.2 KiB
Markdown
16 lines
2.2 KiB
Markdown
---
|
||
aliases:
|
||
- транзакционный аутбокс
|
||
tags:
|
||
- зрелость/🌱
|
||
date: "[[2023-10-26]]"
|
||
zero-link:
|
||
- "[[00 Архитектура ПО]]"
|
||
parents:
|
||
linked:
|
||
---
|
||
Транзакционный аутбокс - это шаблон проектирования программного обеспечения, который обеспечивает надежную обработку сообщений в распределенной системе. Этот шаблон обеспечивает гарантию "точно-однажды" (exactly-once) обработки сообщения, что означает, что сообщение будет обработано только один раз, независимо от возможных сбоев или перезапусков системы.
|
||
|
||
Основная идея транзакционного аутбокса заключается в том, что каждое действие, которое требует отправки сообщения в распределенной системе, должно быть выполнено в рамках одной транзакции вместе с действием записи этого сообщения в "аутбокс" (исходящий ящик) в базе данных. Затем отдельный процесс или служба ("диспетчер аутбокса") периодически сканирует аутбокс и отправляет сообщения. Если сообщение успешно отправлено, оно удаляется из аутбокса.
|
||
|
||
Этот шаблон помогает обеспечить надежность и устойчивость к сбоям в распределенных системах, где сетевые проблемы, сбои оборудования и другие проблемы могут привести к потере или дублированию сообщений. Транзакционный аутбокс гарантирует, что каждое сообщение будет обработано точно один раз, даже если произойдет сбой или перезапуск системы. |