Springboot配置一个服务连多个IP的RabbitMQ

直接上代码,跑不通的请留言

调用MQ接口

    //获取bean
    @Resource(name="psyRabbitTemplate")
    private AmqpTemplate psyRabbitTemplate;
    //获取bean
    @Resource(name="deviceRabbitTemplate")
    private AmqpTemplate deviceRabbitTemplate;

RabbitMQConfig.java

     /*
    定义连接
     */
    @Bean(name = "deviceConnectionFactory")
    public ConnectionFactory daHuaConnectionFactory(
            @Value("${spring.rabbitmq.second.host}") String host,
            @Value("${spring.rabbitmq.second.port}") int port,
            @Value("${spring.rabbitmq.second.username}") String username,
            @Value("${spring.rabbitmq.second.password}") String password,
            @Value("${spring.rabbitmq.second.virtual-host}") String virtual
    ) {
        return connectionFactory(host, port, username, password,virtual);
    }



    public CachingConnectionFactory connectionFactory(String host, int port, String username, String password,String virtual){
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
        connectionFactory.setHost(host);
        connectionFactory.setPort(port);
        connectionFactory.setUsername(username);
        connectionFactory.setPassword(password);
        connectionFactory.setVirtualHost(virtual);
//          connectionFactory.setVirtualHost(virtual_host);
        return connectionFactory;
    }

    @Bean(name = "psyRabbitTemplate")
    @Primary
    public RabbitTemplate myRabbitTemplate(
            @Qualifier("psyConnectionFactory") ConnectionFactory connectionFactory
    ) {
        RabbitTemplate psyRabbitTemplate = new RabbitTemplate(connectionFactory);
        return psyRabbitTemplate;
    }

    @Bean(name = "deviceRabbitTemplate")
    public RabbitTemplate secondRabbitTemplate(
            @Qualifier("deviceConnectionFactory") ConnectionFactory connectionFactory
    ) {
        RabbitTemplate deviceRabbitTemplate = new RabbitTemplate(connectionFactory);
        return deviceRabbitTemplate;
    }

    @Bean(name = "psyFactory")
    @Primary
    public SimpleRabbitListenerContainerFactory myFactory(
            SimpleRabbitListenerContainerFactoryConfigurer configurer,
            @Qualifier("psyConnectionFactory") ConnectionFactory connectionFactory
    ) {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        configurer.configure(factory, connectionFactory);
        return factory;
    }

    @Bean(name = "deviceFactory")
    public SimpleRabbitListenerContainerFactory secondFactory(
            SimpleRabbitListenerContainerFactoryConfigurer configurer,
            @Qualifier("deviceConnectionFactory") ConnectionFactory connectionFactory
    ) {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        configurer.configure(factory, connectionFactory);
        return factory;
    }


    /*
    声明交换机 amq.topic topic类型的,其他类型的直接改TopicExchange
     */
    @Bean
    public TopicExchange basicExchange(){
        return new TopicExchange("amq.topic", true,false);
    }

    /*
    声明消息队列 启动创建,停止自动删除
     */
    @Bean(name = "basicQueue")
    public Queue basicQueue(){
        return new Queue("acquire-alarm-volume", false,true,true);
    }

    /*
    队列绑定交换机 *.*.*.*.*.*为rountingkey
     */
    @Bean
    public Binding basicBinding(){
        return BindingBuilder.bind(basicQueue()).to(basicExchange()).with("*.*.*.*.*.*");}

application.yml

  rabbitmq:
    first:
      host: 192.168.0.134
      port: 5672
      username: admin
      password: admin
      virtual-host: /psy
    second:
      host: 192.168.0.160
      port: 5672
      username: admin
      password: pl,okm123
      virtual-host: /
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wL魔法师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值