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.


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

18899Что приготовила луна на 2026 год: когда наблюдать 13 полнолуний, кровавое затмение и... 18898Глобальная кампания кибершпионажа DarkSpectre скомпрометировала миллионы браузеров в... 18897Действительно ли человечеству необходимо колонизировать другие миры? 18896Особенности наблюдения метеорного потока квадрантиды в условиях январского полнолуния 18895Каменные пирамиды раздора и наследие «мясника Гипсленда» в Австралии 18894Критическая уязвимость в IBM API Connect с рейтингом 9.8 угрожает безопасности глобальных... 18893Эволюция киберугроз в npm и Maven: самораспространяющийся червь Shai-Hulud и поддельный... 18892Уникальная перуанская трофейная голова указывает на сакральный статус людей с врожденными... 18891Как аномально «гладкое» землетрясение в Мьянме меняет прогнозы для грядущего катаклизма в... 18890США неожиданно сняли санкции с ключевых фигур разработчика шпионского по Predator 18889Является ли современный искусственный интеллект похищенным огнем Прометея или лишь новой... 18888Чем угрожает почтовым серверам критическая уязвимость максимального уровня в SmarterMail? 18887Действительно ли возвращение волков стало единственной причиной восстановления экосистемы... 18886Как идеологические убеждения офицеров влияли на жестокость репрессий во время «грязной... 18885Революционная вакцина от фентанила переходит к первым клиническим испытаниям