Комментарии 7
Крутая статья, интересно было почитать, спасибо.
Очень мощная библиотека. Я бы даже сказал чуть ли не фрэймворк. Работаю с их Saga - интересная штука, правда довольно сложно запустить с нуля
Masstransit - мощная штука. Пользуемся им наверно ещё с 3 или 4 версии.
Вощмодностей огромное множество, но за счёт этого каждое мажорное обновление почти всегда содержит в себе какие-нибудь breaking changes. Основная проблема у нас - отсутствие поддержки из коробки сериализации с поддержкой inherited типов.
Из последнего: хорошего: понравилась реализация паттерна Routing Slip, стабильно работает.
Masstransit последних версий использует для сериализации System.Text.Json, который до NET 7 не может в полиморфную сериализацию, но можно сконфигурировать на Newtonsoft.Json, передав в настройках TypeNameHandling = TypeNameHandling.All. Вот вам и сериализация с поддержкой inherited типов.
Здесь бы хорошо услышать как реализован скалинг . Т.к. у кафки это партиции , а у рэбита можно подключать N клиентов к одной очереди.
Самый интересный момент "massstransit" же абстракция, как же эта абстракция работает НАД абсолютно разными типами из перечисленных выше?
У MassTransit есть проблемы, из-за которых вынуждены были отказаться в своё время. Абстрагирование от брокера -- идея хорошая только на поверхности. На практике подход при работе с Rabbit MQ и Kafka, например, разительно отличаются. Если уж используется RMQ, то не надо делать все приёмники fanaut
только потому что они "производительные". Если задачи хотя бы наполовину упираются в производительность RMQ, следует сменить брокер. Управление топологией нормальной нет через MT, полная зависимость от .NET, интегрироваться с кем-то другим, это проблема. Даже в рамках одного .NET могут начаться проблемы, если какие-то сервисы апргейднули МТ, а какие-то нет.
Да и в целом, желательно дважды или трижды подумать, прежде чем брать MT. Если брать, только при определённых условиях и при полном понимании всех рисков и перспектив. Но у него можно подсмотреть и взять на вооружение хорошие паттерны и решения.
Реализация обмена сообщениями через MassTransit