Ssylka

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.


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

18986Продвинутая кампания веб-скимминга маскируется под Stripe и скрывается от администраторов 18985Каким образом расширение «MEXC API Automator» опустошает счета пользователей биржи MEXC? 18984Когда состоится исторический запуск Artemis 2 и возвращение людей к луне? 18983Почему точный прогноз землетрясений остается невозможным даже после провала эксперимента... 18982Смысл становится последней человеческой монополией в эпоху алгоритмического управления 18981Почему протоколы управления машинами превращают агентный ИИ в скрытую угрозу безопасности? 18980Почему в новую эпоху вы потеряете работу не из-за нейросетей, а из-за человека с навыками... 18979Китайский фреймворк VoidLink на языке Zig меняет правила игры в облачном шпионаже 18978Является ли вызывающий рак штамм впч более древним спутником человечества, чем считалось... 18977Почему в 2025 году хакеры масштабируют старые методы вместо изобретения новых? 18976Критическая уязвимость в AI-платформе ServiceNow открывает доступ к подделке личности... 18975Многоэтапная кампания SHADOWREACTOR и скрытное внедрение Remcos RAT через текстовые... 18974Как внезапное расширение полярного вихря создало уникальные ледяные узоры вокруг Чикаго? 18973Древняя вирусная днк раскрывает механизмы развития эмбрионов и указывает путь к лечению... 18972Способен ли новый иридиевый комплекс остановить кризис устойчивости к антибиотикам?