package com.huimv.center.config; import com.huimv.center.utils.Const; import org.springframework.amqp.core.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @Project : huimv.shiwan * @Package : com.huimv.biosafety.uface.controller * @Description : TODO * @Version : 1.0 * @Author : ZhuoNing * @Create : 2020-12-25 **/ @Configuration public class TopicRabbitMQConfig { // 已注册队列 @Bean public Queue deviceRegisteredQueue() { return new Queue(Const.QUEUE_DEVICE_REGISTERED); } // 已注册交换机 @Bean TopicExchange deviceRegisteredExchange() { return new TopicExchange(Const.EXCHANGE_DEVICE_REGISTERED); } // 已注册绑定关系 @Bean Binding bindingRegisteredExchangeMessage() { return BindingBuilder.bind(deviceRegisteredQueue()).to(deviceRegisteredExchange()).with(Const.ROUTING_KEY_DEVICE_REGISTERED); } // 未注册队列 @Bean public Queue deviceUnregisteredQueue() { return new Queue(Const.QUEUE_DEVICE_UNREGISTERED); } // 未注册交换机 @Bean TopicExchange deviceUnregisteredExchange() { return new TopicExchange(Const.EXCHANGE_DEVICE_UNREGISTERED); } // 未注册绑定关系 @Bean Binding bindingUnregisteredExchangeMessage() { return BindingBuilder.bind(deviceUnregisteredQueue()).to(deviceUnregisteredExchange()).with(Const.ROUTING_KEY_DEVICE_UNREGISTERED); } // 应答队列 @Bean public Queue deviceAnswerQueue() { return new Queue(Const.QUEUE_DEVICE_ANSWER); } // 应答交换机 @Bean TopicExchange deviceAnswerExchange() { return new TopicExchange(Const.EXCHANGE_DEVICE_ANSWER); } // 应答绑定关系 @Bean Binding bindingAnswerExchangeMessage() { return BindingBuilder.bind(deviceAnswerQueue()).to(deviceAnswerExchange()).with(Const.ROUTING_KEY_DEVICE_ANSWER); } // 同步注册设备信息队列 @Bean public Queue syncDeviceQueue() { return new Queue(Const.QUEUE_SYNC_DEVICE); } // 同步注册设备信息交换机 @Bean TopicExchange syncDeviceExchange() { return new TopicExchange(Const.EXCHANGE_SYNC_DEVICE); } // 同步注册设备信息绑定关系 @Bean Binding bindingSyncDeviceExchangeMessage() { return BindingBuilder.bind(syncDeviceQueue()).to(syncDeviceExchange()).with(Const.ROUTING_KEY_SYNC_DEVICE); } // 原始数据队列 @Bean public Queue askCmdQueue() { return new Queue(Const.QUEUE_ASK_CMD); } // 原始数据交换机 @Bean TopicExchange askCmdExchange() { return new TopicExchange(Const.EXCHANGE_ASK_CMD); } // 原始数据绑定关系 @Bean Binding bindingAskCmdExchangeMessage() { return BindingBuilder.bind(askCmdQueue()).to(askCmdExchange()).with(Const.ROUTING_KEY_ASK_CMD); } /** * 广播同步注册设备信息队列 */ @Bean public Queue fanoutSyncDeviceQueue() { return new Queue(Const.QUEUE_SYNC_DEVICE_FANOUT); } /** * 广播同步注册设备信息交换机 */ @Bean FanoutExchange fanoutSyncDeviceExchange() { return new FanoutExchange(Const.EXCHANGE_SYNC_DEVICE_FANOUT); } @Bean Binding fanoutBindingSyncDeviceExchangeMessage(){ return BindingBuilder.bind(fanoutSyncDeviceQueue()).to(fanoutSyncDeviceExchange()); } }