xiaoyong931011
2021-12-08 f5e6133809c553cfd9fb28ee61019927c547c374
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -5,9 +5,11 @@
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
@@ -28,6 +30,31 @@
    public static final String ROUTING_KEY_TEST = "test-routingKey";
    public static final String EXCHANGE_A = "biue-exchange-A";
    public static final String EXCHANGE_USDT_UPDATE = "exchange_usdt_update";
    public static final String QUEUE_USDT_UPDATE = "queue_usdt_update";
    public static final String ROUTING_KEY_USDT_UPDATE = "routing_key_usdt_update";
    public static final String EXCHANGE_USDT_ADDRESS = "exchange_usdt_address";
    public static final String QUEUE_USDT_ADDRESS= "queue_usdt_address";
    public static final String ROUTING_KEY_USDT_ADDRESS = "routing_key_usdt_address";
    public static final String EXCHANGE_FISH_HIT = "EXCHANGE_FISH_HIT";
    public static final String QUEUE_FISH_HIT = "QUEUE_FISH_HIT";
    public static final String ROUTING_KEY_FISH_HIT = "ROUTING_KEY_FISH_HIT";
    /**
     * 撮合交易
     */
    public static final String EXCHANGE_B = "biue-exchange-B";
    // 开多止盈队列
@@ -51,6 +78,12 @@
    // 平仓队列
    public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE_NEW";
    // 盘口队列
    public static final String QUEUE_TRADE_PLATE = "QUEUE_TRADE_PLATE";
    // 处理交易
    public static final String QUEUE_HANDLE_TRADE = "QUEUE_HANDLE_TRADE";
    // 开多止盈路由键
    public static final String ROUTINGKEY_MOREPRO = "ROUTINGKEY_MOREPRO";
@@ -72,6 +105,39 @@
    // 平仓路由
    public static final String ROUTINGKEY_CLOSETRADE = "ROUTINGKEY_CLOSETRADE";
    // 盘口理路由
    public static final String ROUTINGKEY_TRADE_PLATE = "ROUTINGKEY_TRADE_PLATE";
    // 交易订单处理
    public static final String ROUTINGKEY_HANDLE_TRADE = "ROUTINGKEY_HANDLE_TRADE";
    public static final String EXCHANGE_ROC = "roc-transfer";
    public static final String QUEUE_ROC= "roc-queue";
    public static final String ROUTING_KEY_ROC = "roc-transfer-routingKey";
    public static final String EXCHANGE_ROC_ORDER_SUBMIT = "roc-exchange-order-submit";
    public static final String QUEUE_ROC_ORDER_SUBMIT = "roc-order-queue-submit";
    public static final String ROUTING_KEY_ROC_ORDER_SUBMIT  = "roc-order-routingKey-submit";
    public static final String EXCHANGE_ROC_ORDER_CANCEL = "roc-exchange-order-cancel";
    public static final String QUEUE_ROC_ORDER_CANCEL = "roc-order-queue-cancel";
    public static final String ROUTING_KEY_ROC_ORDER_CANCEL  = "roc-order-routingKey-cancel";
    public static final String EXCHANGE_ROC_ORDER_COMPLETE = "roc-exchange-order-complete";
    public static final String QUEUE_ROC_ORDER_COMPLETE = "roc-order-queue-complete";
    public static final String ROUTING_KEY_ROC_ORDER_COMPLETE  = "roc-order-routingKey-complete";
    public static final String QUEUE_TRC20_BLOCK = "QUEUE_TRC20_BLOCK";
    public static final String ROUTING_TRC20_BLOCK = "ROUTING_TRC20_BLOCK";
    @Resource
    private ConnectionFactory connectionFactory;
@@ -84,6 +150,16 @@
//        return connectionFactory;
//    }
    @Bean("customContainerFactory")
    public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer,
                                                                 ConnectionFactory connectionFactory) {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        factory.setConcurrentConsumers(10);
        factory.setMaxConcurrentConsumers(10);
        configurer.configure(factory, connectionFactory);
        return factory;
    }
    @Bean
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public RabbitTemplate rabbitTemplate() {
@@ -95,6 +171,7 @@
        return new DirectExchange(EXCHANGE_ONE);
    }
    @Bean
    public Queue testQueue() {
        return new Queue(QUEUE_TEST, true);
@@ -103,6 +180,115 @@
    @Bean
    public Binding binding() {
        return BindingBuilder.bind(testQueue()).to(defaultExchange()).with(ROUTING_KEY_TEST);
    }
    // 交易订单
    @Bean
    public DirectExchange orderSubmitExchange() {
        return new DirectExchange(EXCHANGE_ROC_ORDER_SUBMIT);
    }
    @Bean
    public Queue ordereSubmitQueue() {
        return new Queue(QUEUE_ROC_ORDER_SUBMIT, true);
    }
    @Bean
    public Binding bindingSubmitOrder() {
        return BindingBuilder.bind(ordereSubmitQueue()).to(orderSubmitExchange()).with(ROUTING_KEY_ROC_ORDER_SUBMIT);
    }
    // 交易订单
    @Bean
    public DirectExchange orderCancelExchange() {
        return new DirectExchange(EXCHANGE_ROC_ORDER_CANCEL);
    }
    @Bean
    public Queue ordereCancelQueue() {
        return new Queue(QUEUE_ROC_ORDER_CANCEL, true);
    }
    @Bean
    public Binding bindingCancelOrder() {
        return BindingBuilder.bind(ordereCancelQueue()).to(orderCancelExchange()).with(ROUTING_KEY_ROC_ORDER_CANCEL);
    }
   // 交易订单
    @Bean
    public DirectExchange orderCompleteExchange() {
        return new DirectExchange(EXCHANGE_ROC_ORDER_COMPLETE);
    }
    @Bean
    public Queue ordereCompleteQueue() {
        return new Queue(QUEUE_ROC_ORDER_COMPLETE, true);
    }
    @Bean
    public Binding bindingCompleteOrder() {
        return BindingBuilder.bind(ordereCompleteQueue()).to(orderCompleteExchange()).with(ROUTING_KEY_ROC_ORDER_COMPLETE);
    }
   @Bean
    public DirectExchange usdtUpdateExchange() {
        return new DirectExchange(EXCHANGE_USDT_UPDATE);
    }
    @Bean
    public Queue usdtUpdateQueue() {
        return new Queue(QUEUE_USDT_UPDATE, true);
    }
    @Bean
    public Binding usdtUpdatebinding() {
        return BindingBuilder.bind(usdtUpdateQueue()).to(usdtUpdateExchange()).with(ROUTING_KEY_USDT_UPDATE);
    }
    @Bean
    public DirectExchange fishHitExchange() {
        return new DirectExchange(EXCHANGE_FISH_HIT);
    }
    @Bean
    public Queue fishHitQueue() {
        return new Queue(QUEUE_FISH_HIT, true);
    }
    @Bean
    public Binding fishHitbinding() {
        return BindingBuilder.bind(fishHitQueue()).to(fishHitExchange()).with(ROUTING_KEY_FISH_HIT);
    }
    @Bean
    public DirectExchange usdtAddressExchange() {
        return new DirectExchange(EXCHANGE_USDT_ADDRESS);
    }
    @Bean
    public Queue usdtAddressQueue() {
        return new Queue(QUEUE_USDT_ADDRESS, true);
    }
    @Bean
    public Binding usdtAddressbinding() {
        return BindingBuilder.bind(usdtAddressQueue()).to(usdtAddressExchange()).with(ROUTING_KEY_USDT_ADDRESS);
    }
    @Bean
    public Queue trc20Queue() {
        return new Queue(QUEUE_TRC20_BLOCK);
    }
    @Bean
    public Binding trc20Binding() {
        return BindingBuilder.bind(trc20Queue()).to(defaultExchange()).with(ROUTING_TRC20_BLOCK);
    }
@@ -204,6 +390,27 @@
    /**
     * 盘口推送
     *
     * @return
     */
    @Bean
    public Queue queuePlateTrade() {
        return new Queue(QUEUE_TRADE_PLATE, true);
    }
    /**
     * 交易订单处理
     *
     * @return
     */
    @Bean
    public Queue queueHandleTrade() {
        return new Queue(QUEUE_HANDLE_TRADE, true);
    }
    /**
     * 开多止盈
     *
     * @return
@@ -286,4 +493,46 @@
        return BindingBuilder.bind(queueCloseTrade()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_CLOSETRADE);
    }
    @Bean
    public DirectExchange matchTradeExchange() {
        return new DirectExchange(EXCHANGE_B);
    }
    /**
     * 盘口变化绑定
     *
     * @return
     */
    @Bean
    public Binding bindingPlateTrade() {
        return BindingBuilder.bind(queuePlateTrade()).to(matchTradeExchange()).with(RabbitMqConfig.ROUTINGKEY_TRADE_PLATE);
    }
    /**
     *  交易订单处理
     *
     * @return
     */
    @Bean
    public Binding bindingHandleTrade() {
        return BindingBuilder.bind(queueHandleTrade()).to(matchTradeExchange()).with(RabbitMqConfig.ROUTINGKEY_HANDLE_TRADE);
    }
    @Bean
    public DirectExchange rocExchange() {
        return new DirectExchange(EXCHANGE_ROC);
    }
    @Bean
    public Queue rocQueue() {
        return new Queue(QUEUE_ROC, true);
    }
    @Bean
    public Binding bindingRoc() {
        return BindingBuilder.bind(rocQueue()).to(rocExchange()).with(ROUTING_KEY_ROC);
    }
}