Helius
2021-05-21 d30d959c8f249c20b39e66dd0c48341a77751d21
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -13,6 +13,8 @@
import org.springframework.context.annotation.Scope;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
/**
 * @author wzy
@@ -28,6 +30,25 @@
    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_B = "biue-exchange-B";
    // 开多止盈队列
@@ -54,6 +75,21 @@
    // 平仓队列
    public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE_NEW";
    // 全仓爆仓
    public static final String QUEUE_WHOLE_BOMB = "QUEUE_WHOLE_BOMB_NEW";
    // 全仓价格操作
    public static final String QUEUE_WHOLE_PRICE = "QUEUE_WHOLE_PRCE";
    // 跟单下单
    public static final String QUEUE_FOLLOW_ORDER = "QUEUE_FOLLOW_ORDER";
    public static final String ROUTINGKEY_FOLLOW_ORDER = "ROUTINGKEY_FOLLOW_ORDER";
    // 跟单调整保证金
    public static final String QUEUE_FOLLOW_CHANGE_BOND = "QUEUE_FOLLOW_CHANGE_BOND";
    public static final String ROUTINGKEY_FOLLOW_CHANGE_BOND = "ROUTINGKEY_FOLLOW_CHANGE_BOND";
    // 开多止盈路由键
    public static final String ROUTINGKEY_MOREPRO = "ROUTINGKEY_MOREPRO";
@@ -77,6 +113,20 @@
    // 委托平仓
    public static final String ROUTINGKEY_LIMIT_CLOSE = "ROUTINGKEY_LIMIT_CLOSE";
    // 全仓爆仓
    public static final String ROUTINGKEY_WHOLE_BOMB = "ROUTINGKEY_WHOLE_BOMB";
    // 全仓价格操作
    public static final String ROUTINGKEY_WHOLE_PRICE = "ROUTINGKEY_WHOLE_PRICE";
    public static final String ROUTINGKEY_MARKET_BUSSINESS = "ROUTINGKEY_MARKET_BUSSINESS";
    public static final String QUEUE_MARKET_BUSSINESS = "QUEUE_MARKET_BUSSINESS";
    public static final String ROUTING_KEY_DELAY = "route.delay";
    public static final String QUEUE_DELAY = "queue.delay";
    public static final String EXCHANGE_DELAY = "exchange.delay";
    @Resource
    private ConnectionFactory connectionFactory;
@@ -102,6 +152,36 @@
    }
    @Bean
    public DirectExchange delayExchange() {
        return new DirectExchange(EXCHANGE_DELAY);
    }
    @Bean
    public Queue delayQueue() {
        Map<String, Object> params = new HashMap<>();
        // x-dead-letter-exchange 声明了队列里的死信转发到的DLX名称,
        params.put("x-dead-letter-exchange", EXCHANGE_DELAY);
        // x-dead-letter-routing-key 声明了这些死信在转发时携带的 routing-key 名称。
        params.put("x-dead-letter-routing-key", ROUTING_KEY_DELAY);
        return new Queue(QUEUE_DELAY, true, false, false, params);
    }
    @Bean
    public Binding delayBinding() {
        return BindingBuilder.bind(delayQueue()).to(delayExchange()).with(ROUTING_KEY_DELAY);
    }
    @Bean
    public Queue marketBussinessQueue() {
        return new Queue(QUEUE_MARKET_BUSSINESS);
    }
    @Bean
    public Binding marketBussinessBinding() {
        return BindingBuilder.bind(marketBussinessQueue()).to(defaultExchange()).with(ROUTINGKEY_MARKET_BUSSINESS);
    }
    @Bean
    public Queue testQueue() {
        return new Queue(QUEUE_TEST, true);
    }
@@ -109,6 +189,39 @@
    @Bean
    public Binding binding() {
        return BindingBuilder.bind(testQueue()).to(defaultExchange()).with(ROUTING_KEY_TEST);
    }
   @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 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);
    }
@@ -218,6 +331,44 @@
        return new Queue(QUEUE_CLOSETRADE, true);
    }
    @Bean
    public Queue queueWholePrice() {
        return new Queue(QUEUE_WHOLE_PRICE, true);
    }
    /**
     * 全仓爆仓
     * @return
     */
    @Bean
    public Queue queueWholeBomb() {
        return new Queue(QUEUE_WHOLE_BOMB, true);
    }
    @Bean
    public Queue queueFollowOrder() {
        return new Queue(QUEUE_FOLLOW_ORDER, true);
    }
    @Bean
    public Queue queueFollowChangeBond() {
        return new Queue(QUEUE_FOLLOW_CHANGE_BOND, true);
    }
    @Bean
    public Binding bindingFollowChangeBond() {
        return BindingBuilder.bind(queueFollowChangeBond()).to(orderExchange()).with(ROUTINGKEY_FOLLOW_CHANGE_BOND);
    }
    @Bean
    public Binding bindingFollowOrder() {
        return BindingBuilder.bind(queueFollowOrder()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_FOLLOW_ORDER);
    }
    @Bean
    public Binding bindingWholePrice() {
        return BindingBuilder.bind(queueWholePrice()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_WHOLE_PRICE);
    }
    /**
     * 开多止盈
@@ -275,8 +426,9 @@
     *
     * @return
     */
    @Bean
    public Binding bindingLimitClose() {
        return BindingBuilder.bind(queueLimitClose()).to(orderExchange()).with(RabbitMqConfig.QUEUE_LIMIT_CLOSE);
        return BindingBuilder.bind(queueLimitClose()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_LIMIT_CLOSE);
    }
    /**
@@ -310,4 +462,14 @@
        return BindingBuilder.bind(queueCloseTrade()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_CLOSETRADE);
    }
    /**
     * 全仓爆仓绑定
     *
     * @return
     */
    @Bean
    public Binding bindingWholeBomb() {
        return BindingBuilder.bind(queueWholeBomb()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_WHOLE_BOMB);
    }
}