Administrator
2026-08-13 392a6ba0f6c98b4a8b5398b4b75ad909f9bcf67c
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -21,13 +21,13 @@
@Configuration
public class RabbitMqConfig {
    public static final String EXCHANGE_ONE = "excoin-exchange-one";
    public static final String EXCHANGE_ONE = "biue-exchange-one";
    public static final String QUEUE_TEST = "test-queue";
    public static final String ROUTING_KEY_TEST = "test-routingKey";
    public static final String EXCHANGE_A = "biyi-exchange-A";
    public static final String EXCHANGE_A = "biue-exchange-A";
    // 开多止盈队列
@@ -46,10 +46,10 @@
    public static final String QUEUE_COINOUT = "QUEUE_COINOUT_NEW";
    //价格操作
    public static final String QUEUE_PRICEOPERATE = "QUEUE_PRICEOPERATE";
    public static final String QUEUE_PRICEOPERATE = "QUEUE_PRICEOPERATE_NEW";
    // 平仓队列
    public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE";
    public static final String QUEUE_CLOSETRADE = "QUEUE_CLOSETRADE_NEW";
    // 开多止盈路由键
@@ -71,6 +71,18 @@
    public static final String ROUTINGKEY_PRICEOPERATE = "ROUTINGKEY_PRICEOPERATE";
    // 平仓路由
    public static final String ROUTINGKEY_CLOSETRADE = "ROUTINGKEY_CLOSETRADE";
    // ==================== Gate 策略管理 ====================
    /** Gate 管理交换机 */
    public static final String EXCHANGE_GATE = "biue-exchange-gate";
    /** 心跳+事件+确认 队列(Station 独占消费) */
    public static final String QUEUE_GATE_HEARTBEAT = "QUEUE_GATE_HEARTBEAT";
    /** 心跳+事件+确认 路由键 */
    public static final String ROUTINGKEY_GATE_HEARTBEAT = "ROUTINGKEY_GATE_HEARTBEAT";
    /** 策略事件队列(Station 消费落库) */
    public static final String QUEUE_GATE_STATS = "QUEUE_GATE_STATS";
    /** 策略事件路由键 */
    public static final String ROUTINGKEY_GATE_STATS = "ROUTINGKEY_GATE_STATS";
    @Resource
    private ConnectionFactory connectionFactory;
@@ -286,4 +298,31 @@
        return BindingBuilder.bind(queueCloseTrade()).to(orderExchange()).with(RabbitMqConfig.ROUTINGKEY_CLOSETRADE);
    }
    // ==================== Gate 管理队列 ====================
    @Bean
    public DirectExchange gateExchange() {
        return new DirectExchange(EXCHANGE_GATE);
    }
    @Bean
    public Queue gateHeartbeatQueue() {
        return new Queue(QUEUE_GATE_HEARTBEAT, true);
    }
    @Bean
    public Binding bindingGateHeartbeat() {
        return BindingBuilder.bind(gateHeartbeatQueue()).to(gateExchange()).with(ROUTINGKEY_GATE_HEARTBEAT);
    }
    @Bean
    public Queue gateStatsQueue() {
        return new Queue(QUEUE_GATE_STATS, true);
    }
    @Bean
    public Binding bindingGateStats() {
        return BindingBuilder.bind(gateStatsQueue()).to(gateExchange()).with(ROUTINGKEY_GATE_STATS);
    }
}