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.


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

18293Почему для исправления «техношеи» нужно укреплять мышцы, а не растягивать их? 18292Как новорожденная звезда подала сигнал из эпицентра мощнейшего взрыва? 18291Нотный рецепт: как наука превращает музыку в обезболивающее 18290Что превращает кофейное зерно в идеальный напиток? 18289Как пробуждение древних микробов и тайны черных дыр меняют наше будущее? 18288Как 3500-летняя крепость в Синае раскрывает секреты египетской военной мощи? 18287Китайская кибергруппа Silver Fox расширяет охоту на Японию и Малайзию 18286Набор инструментов Kobalt на 297 предметов в Lowe's всего за $99 18285Анатомия вирусного успеха дубайского шоколада 18284Почему лемуры Мадагаскара нарушают общепринятые законы эволюции? 18283Капля крови против рака: новая эра диагностики онкологии 18282Как северокорейские хакеры создают универсальное кибероружие из двух вредоносных программ? 18281Как пугало проиграло войну с птицами и стало культурным символом 18280Таблетка-принтер для заживления тканей изнутри 18279Наследие кометы галлея: как увидеть метеорный поток Ориониды