C#分布式项目中是否使用MassTransit
参考
- https://www.cnblogs.com/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 项目, 优势就非常突出了, 它很好的封装了底层的消息中间件, 开发效率会大大提升的.