MassTransit 5.5.6如何为ConfigureEndpoints自动生成的队列配置全局参数
MassTransit 5.5.6 全局配置自动生成队列参数方案
你使用的5.5.6版本支持全局配置自动生成队列的参数,无需逐个手动指定每个端点的配置。
实现方式
IRabbitMqBusFactoryConfigurator.ConfigureEndpoints 方法在5.5.6版本已经提供了支持全局配置的重载,你可以传入一个全局配置委托,该委托会作用于所有自动扫描生成的接收端点,统一配置队列参数。
代码示例
var busControl = Bus.Factory.CreateUsingRabbitMq(cfg => { // 配置RabbitMQ host cfg.Host(new Uri("rabbitmq://你的服务地址"), hostConfig => { hostConfig.Username("你的用户名"); hostConfig.Password("你的密码"); }); // 自动扫描配置端点,同时传入全局配置委托 cfg.ConfigureEndpoints(cfg, endpointConfig => { // 统一配置全局队列参数 endpointConfig.SetQueueArgument("x-max-length", 10000); endpointConfig.SetQueueArgument("x-overflow", "reject-publish"); // 其他需要全局生效的队列参数均可在此处统一添加 }); });
注意事项
- 该全局委托会在每个自动创建的接收端点初始化时执行,所有配置会同步应用到对应生成的RabbitMQ队列中
- 若存在个别消费者需要特殊配置的场景,可以单独为该消费者指定端点配置,优先级高于全局配置
- RabbitMQ队列的参数仅在队列首次创建时生效,若你已经创建过同名队列,需要先删除旧队列再重启服务,新配置的参数才会生效
内容的提问来源于stack exchange,提问作者Jim Bastiras
相关产品推荐
相关产品推荐

