RabbitMqConfig.java 4.52 KB
package com.topdraw.config;

import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

@Configuration
public class RabbitMqConfig {

    /** 路由(事件)--direct route.key*/
    public static final String UC_ROUTE_KEY_DIRECT_EVENT_AAA = "uc.route.key.direct.event.aaa";

    /** 队列-- */
    public static final String UC_QUEUE_FANOUT_IPTV = "uc.fanout.iptv";
    public static final String UC_QUEUE_FANOUT_WEIXIN = "uc.fanout.weixin";

    public static final String UC_EXCHANGE_FANOUT = "uc.fanout";


    @Bean(name = "userCenterConnectionFactory")
    @Primary
    public ConnectionFactory userCenterConnectionFactory(){
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
        /*connectionFactory.setHost("47.100.212.170");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("test");
        connectionFactory.setPassword("test");
        connectionFactory.setVirtualHost("/");*/
        connectionFactory.setHost("172.23.51.109");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("Tjlh@2021");
//        connectionFactory.setVirtualHost("member_center");
        connectionFactory.setVirtualHost("/");
        return connectionFactory;
    }

    @Bean(name = "memberServiceConnectionFactory")
    public ConnectionFactory memberServiceConnectionFactory(){
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
        /*connectionFactory.setHost("139.196.145.150");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("Topdraw1qaz");
        connectionFactory.setVirtualHost("member_center");*/
        connectionFactory.setHost("172.0.31.108");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("Tjlh@2021");
        connectionFactory.setVirtualHost("member_center");
        return connectionFactory;
    }

    @Bean(name = "userCenterRabbitListenerContainerFactory")
    @Primary
    public RabbitListenerContainerFactory userCenterRabbitListenerContainerFactory(
            SimpleRabbitListenerContainerFactoryConfigurer containerFactoryConfigurer,
            @Qualifier("userCenterConnectionFactory") ConnectionFactory connectionFactory) {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        containerFactoryConfigurer.configure(factory,connectionFactory);
        return factory;
    }


    @Bean(name = "memberServiceRabbitListenerContainerFactory")
    public RabbitListenerContainerFactory memberServiceRabbitListenerContainerFactory(
            SimpleRabbitListenerContainerFactoryConfigurer containerFactoryConfigurer,
            @Qualifier("memberServiceConnectionFactory") ConnectionFactory connectionFactory) {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        containerFactoryConfigurer.configure(factory,connectionFactory);
        return factory;
    }

/*
    @Bean(name = "userCenterRabbitTemplate")
    public RabbitTemplate userCenterRabbitTemplate(ConnectionFactory userCenterConnectionFactory){
        RabbitTemplate u = new RabbitTemplate(userCenterConnectionFactory);
        return u;
    }

    @Bean(name = "memberServiceRabbitTemplate")
    public RabbitTemplate memberServiceRabbitTemplate(ConnectionFactory memberServiceConnectionFactory){
        RabbitTemplate u = new RabbitTemplate(memberServiceConnectionFactory);
        return u;
    }
*/


    /**
     * 处理事件
     * @return org.springframework.amqp.core.Queue
     * @author XiangHan
     * @date 2021/9/7 10:19 上午
     */
    @Bean
    public Queue eventDirect() {
        return new Queue(UC_ROUTE_KEY_DIRECT_EVENT_AAA);
    }
}