栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RabbitMq如何配置多个Virtual host生产者和消费者

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMq如何配置多个Virtual host生产者和消费者

** springboot服务下进行rabbitmq生产和消费自定义配置@Configuration

1、生产者进行配置 1-1配置主连接工厂
@Bean("connectionFactory")
    @Primary//这个地方必须声明一个唯一主要的
    public CachingConnectionFactory connectionFactory(){
        CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(host,port);
        cachingConnectionFactory.setUsername(username);
        cachingConnectionFactory.setPassword(password);
        cachingConnectionFactory.setVirtualHost(virtualHost);
        return cachingConnectionFactory;
    }
1-2配置主模板
    @Bean("rabbitTemplate")
    @Primary
    public RabbitTemplate rabbitTemplate(@Qualifier("connectionFactory") CachingConnectionFactory connectionFactory){
        return new RabbitTemplate(connectionFactory);
    }
1-3配置次连接工厂
 @Bean("connectionSecondFactory")
    public CachingConnectionFactory connectionSecondFactory(){
        CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(host,port);
        cachingConnectionFactory.setUsername(username);
        cachingConnectionFactory.setPassword(password);
        cachingConnectionFactory.setVirtualHost(virtualHostOld);
        return cachingConnectionFactory;
    }
1-4配置次模板
  @Bean("rabbitTemplateSecond")
    public RabbitTemplate rabbitTemplateSecond(@Qualifier("connectionSecondFactory") CachingConnectionFactory connectionSecondFactory){
        return new RabbitTemplate(connectionSecondFactory);
    }
2、消费者进行配置 2-1、自定义消费者监听工厂
    @Bean("newContainerFactory")
    public SimpleRabbitListenerContainerFactory newContainerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer,
                                                                    @Qualifier("connectionSecondFactory") ConnectionFactory connectionFactory){
        SimpleRabbitListenerContainerFactory listenerContainerFactory = new SimpleRabbitListenerContainerFactory();
        listenerContainerFactory.setAcknowledgeMode(AcknowledgeMode.AUTO);
        configurer.configure(listenerContainerFactory, connectionFactory);
        return listenerContainerFactory;

    }
2-2、指定自定义消费者工厂进行监听消费 2-2-1、执行自定义消费工厂进行消息对列消费
 @RabbitListener(queues =  "${queue.****}",containerFactory ="newContainerFactory" )
2-2-2、默认工厂进行消息对列消费
    @RabbitListener(queues = ComboRabbitMQQueneConstant.QUEUE_COMBO_ORDER_PAY)
2-2-3、默认工厂进行消息对列消费,如果当前对列不存在主动创建
 @RabbitListener(queuesToDeclare = @Queue(value = AspectRabbitMQQueneConstant.QUEUE_ASPECT_AOP_LOG))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号