Является ли транзакция исходящей высокой надежностью - PullRequest
1 голос
/ 04 февраля 2020

Я хочу знать, как работает исходящая транзакция и как MT гарантирует согласованность транзакций базы данных и операций отправки сообщений.

В примере aspnetcore MVC, когда транзакция базы данных успешно отправлена, но сообщение по какой-то причине не может быть отправлено, будет ли МТ повторять отправку сообщения?

Я не вижу никакой конфигурации для хранения базы данных, я думаю о том, как эта надежность гарантируется

1 Ответ

1 голос
/ 04 февраля 2020

Как описано в документации, функция TransactionOutbox гарантирует, что транзакция фиксируется только тогда, когда все сообщения, отправленные или опубликованные из контекста потребителя, фактически отправлены на шину сообщений.

MassTransit всегда повторяет попытку отправки сообщения, если транспорт не подтверждает сообщение. В любом случае, он не является частью исходящей почты.

Если транспорт не сможет отправить или опубликовать sh ваши сообщения, фиксация не будет, поэтому транзакция будет откатана.

...