用途:为 .NET 事件驱动架构提供持久化消息模式指导,覆盖发布/订阅、竞争消费者、死信队列、Saga/流程管理器编排以及投递保证策略,涉及 Azure Service Bus、RabbitMQ 与 MassTransit。
主要能力:区分命令、事件、文档三类消息;说明至多一次、至少一次、恰好一次投递保证,并指出至少一次加幂等消费者是持久消息的标准做法;给出 Azure Service Bus 主题、RabbitMQ 扇出交换机、MassTransit 发布订阅的用法;讲解竞争消费者与并发限制、顺序取舍(会话、单消费者、分区);死信队列的触发原因、读取与监控;MassTransit 状态机 Saga 与补偿模式;基于数据库去重和自然幂等的幂等消费者;消息信封模式。
使用方式:通过 NuGet 引入 Azure.Messaging.ServiceBus、RabbitMQ.Client、MassTransit 及对应传输包(如 MassTransit.RabbitMQ 或 MassTransit.Azure.ServiceBus.Core),在依赖注入中注册消费者与端点,使用 IPublishEndpoint 发布、IConsumer 消费。Saga 持久化可选 Entity Framework Core、MongoDB、Redis,内存持久化仅用于测试。
适用场景:需要跨服务异步通信、事件通知、多消费者并行处理、长流程编排与失败补偿的 .NET 系统。
限制与注意:不涵盖后台服务生命周期、弹性重试管道、序列化配置和 Channel 进程内队列,这些由其他技能处理。使用 Azure Service Bus 时应关闭自动完成并在处理成功后手动确认;必须配置最大投递次数与死信监控;生产环境不要使用内存 Saga 持久化;不要假设跨分区消息有序;至少一次消费者必须处理重复消息;连接字符串不应硬编码。具体价格、平台支持范围等资料暂未提供。