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.


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

19905Зачем древние египтяне строили круглые храмы? 19904Планета, на которой вы живёте, но почти не знаете 19903Может ли анализ крови остановить рак печени ещё до его начала? 19902Кто такие GopherWhisper и зачем им монгольские чиновники? 19901«Вояджер-1» готовится к манёвру «большой взрыв»: NASA отключает приборы ради выживания 19900Почему вокруг Чатемских островов появилось светящееся кольцо из планктона? 19899Как взлом Vercel начался с Roblox-скрипта на чужом компьютере 19898Кто лежит в шотландских гробницах каменного века? 19897Почему две англосаксонские сестра и брат были похоронены в объятиях 1400 лет назад? 19896Гормон GDF15: найдена причина мучительного токсикоза у беременных 19895Почему хакеры Harvester прячут вредоносный код в папке «Zomato Pizza»? 19894Робот-гуманоид Panther от UniX AI претендует на место в каждом доме 19893Artemis застряла на земле: NASA не может лететь на луну без новых скафандров 19892Почему 20 000 промышленных устройств по всему миру оказались под угрозой взлома? 19891Зачем египетская мумия «проглотила» «Илиаду»?
Ссылка