Как стать автором
Обновить

Комментарии 7

Крутая статья, интересно было почитать, спасибо.

Очень мощная библиотека. Я бы даже сказал чуть ли не фрэймворк. Работаю с их Saga - интересная штука, правда довольно сложно запустить с нуля

Masstransit - мощная штука. Пользуемся им наверно ещё с 3 или 4 версии.

Вощмодностей огромное множество, но за счёт этого каждое мажорное обновление почти всегда содержит в себе какие-нибудь breaking changes. Основная проблема у нас - отсутствие поддержки из коробки сериализации с поддержкой inherited типов.

Из последнего: хорошего: понравилась реализация паттерна Routing Slip, стабильно работает.

Masstransit последних версий использует для сериализации System.Text.Json, который до NET 7 не может в полиморфную сериализацию, но можно сконфигурировать на Newtonsoft.Json, передав в настройках TypeNameHandling = TypeNameHandling.All. Вот вам и сериализация с поддержкой inherited типов.

Все верно, но не так просто. Как раз из коробки TypeNameHandling = TypeNameHandling.All там не работает. Что в предыдущей версии, что в последней. Требуются некоторые доработки.

Здесь бы хорошо услышать как реализован скалинг . Т.к. у кафки это партиции , а у рэбита можно подключать N клиентов к одной очереди.

Самый интересный момент "massstransit" же абстракция, как же эта абстракция работает НАД абсолютно разными типами из перечисленных выше?

У MassTransit есть проблемы, из-за которых вынуждены были отказаться в своё время. Абстрагирование от брокера -- идея хорошая только на поверхности. На практике подход при работе с Rabbit MQ и Kafka, например, разительно отличаются. Если уж используется RMQ, то не надо делать все приёмники fanaut только потому что они "производительные". Если задачи хотя бы наполовину упираются в производительность RMQ, следует сменить брокер. Управление топологией нормальной нет через MT, полная зависимость от .NET, интегрироваться с кем-то другим, это проблема. Даже в рамках одного .NET могут начаться проблемы, если какие-то сервисы апргейднули МТ, а какие-то нет.

Да и в целом, желательно дважды или трижды подумать, прежде чем брать MT. Если брать, только при определённых условиях и при полном понимании всех рисков и перспектив. Но у него можно подсмотреть и взять на вооружение хорошие паттерны и решения.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий