C#分布式項目中是否使用MassTransit
參考
- http://www.rzrgm.cn/sheng-jie/p/MassTransit-NET-Distributed-Application-Framework.html
- https://www.sundstrom.dev/articles/building-distributed-apps-with-masstransit
- https://code-maze.com/masstransit-rabbitmq-aspnetcore/
- https://www.gyata.ai/asp-net/masstransit
分布式系統常見的架構是微服務和SOA, 在實踐層面微服務引入了服務發現和服務注冊, SOA架構主要依賴服務總線, MassTransit可以歸為SOA一類,
MassTransit 功能
- 支持消息的 pub/sub 消息處理模式, 徹底解耦了消息生產者和消費者. 而且是異步消息處理, 消息消費端不會影響pub端的執行效率.
- 支持RPC調用, 即使用 request/response 模式, 和Http/GRPC相比, 我不認為有什么明顯的優勢, 同時沒有Http/GRPC開放性的優勢.
- 內置重試、限流、斷路器等異常處理機制
- 支持 Open Telemetry 可觀察性
- 支持多種后臺, 包括 RabbitMQ/Azure ServiceBus/Amazon SQS/Kafka/PGSQL/MSSQL等
理解
使用MassTransit的突出優勢就是它支持異步的 pub/sub 消息處理模式, 解耦生產者和消費者, 如果項目中沒有這樣的場景, 使用它就沒有優勢, 直接Http/GRPC集成就可以了. 如果項目是那種消息驅動的類型, 比如 MES 項目, 優勢就非常突出了, 它很好的封裝了底層的消息中間件, 開發效率會大大提升的.

浙公網安備 33010602011771號