SQL Transport в MassTransit: альтернатива брокеру сообщений

MassTransit, библиотека для асинхронного взаимодействия, теперь поддерживает SQL Transport, позволяя использовать базу данных вместо традиционных брокеров, таких как RabbitMQ. Это может упростить инфраструктуру, особенно для проектов, где база данных уже является необходимостью, избегая дополнительной зависимости от брокера сообщений. SQL Transport предоставляет возможности ретраев, перенаправления сообщений и роутинга, как и брокеры.
SQL Transport в MassTransit: альтернатива брокеру сообщений
Изображение носит иллюстративный характер

Однако переход на SQL Transport может вызвать трудности. Необходимо создать отдельную базу данных и убедиться, что ее имя написано строчными буквами, поскольку встроенные миграции MassTransit не поддерживают экранирование имен. Версия PostgreSQL также важна, поскольку SQL-запросы внутри библиотеки зависят от версии. Кроме того, использование NodaTime для даты и времени, типичное проектов с PostgreSQL, может потребовать дополнительной конфигурации, так как SQL Transport использует DateTimeOffset. Также, если вы привыкли публиковать сообщения в exchange с последующим роутингом, SQL Transport требует переписать места публикаций непосредственно в очередь.

SQL Transport не гарантирует транзакционность между вашим бизнес-кодом и операциями с очередями. Они существуют раздельно и требуют явного управления транзакциями. Также, автомиграции схемы базы данных на старте сервиса не ясны в многосервисном окружении. И еще, нет версионирования схемы, что приводит к проблемам при обновлениях MassTransit: для обновления могут потребоваться ручные удаления функций и views из БД. SQL Transport привязан и MassTransit, и не подходит для разноязычных систем. Тем не менее, реализация с Postgres не использует пул коннектов и использует нативные уведомления, что повышает производительность.

В конечном итоге SQL Transport удобен для небольших проектов, где требуется асинхронность, но не хочется использовать внешний брокер сообщений. Он также подходит, если ограничения не позволяют использовать брокер сообщений. Из преимуществ выделяют простоту развертывания, отсутствие необходимости в экспертизе по брокерам сообщений и высокую производительность. Для желающих попробовать SQL Transport есть библиотека ResQueue, которая предлагает удобный веб-интерфейс для просмотра и управления очередями. Также, необходимо ознакомиться с возможностями партиционирования и порядка обработки сообщений, которые сильно напоминают работу с Apache Kafka.


Новое на сайте

19218Критический март для Cisco: хакеры активно эксплуатируют уязвимости Catalyst SD-WAN... 19217Трансформация двухколесного будущего: от индустриального триумфа до постапокалиптического... 19216Смертельный симбиоз спама и эксплойтов: как хакеры захватывают корпоративные сети за 11... 19215Как новые SaaS-платформы вроде Starkiller и 1Phish позволяют киберпреступникам незаметно... 19214Инженерия ужаса: как паровые машины и математика создали гений Эдгара Аллана по 19213Трансформация первой линии SOC: три шага к предиктивной безопасности 19212Архитектура смыслов в профессиональной редактуре 19211Манипуляция легитимными редиректами OAuth как вектор скрытых атак на правительственные... 19210Как активно эксплуатируемая уязвимость CVE-2026-21385 в графике Qualcomm привела к... 19209Как беспрецедентный бунт чернокожих женщин в суде Бостона разрушил планы рабовладельцев? 19208Как новые поколения троянов удаленного доступа захватывают системы ради кибершпионажа и... 19207Почему мировые киберпреступники захватили рекламные сети, и как Meta вместе с властями... 19206Как фальшивый пакет StripeApi.Net в NuGet Gallery незаметно похищал финансовые API-токены... 19205Зачем неизвестная группировка UAT-10027 внедряет бэкдор Dohdoor в системы образования и... 19204Ритуальный предсвадебный плач как форма протеста в традиционном Китае
Ссылка