注意:普通交换机绑定备份交换机
//声明交换机 @Bean("exchangeA") public DirectExchange exchangeA() { Maparguments = new HashMap<>(); arguments.put("alternate", BACKUP_EXCHANGE); return new DirectExchange(/confirm/i_EXCHANGE_A, true, false, arguments); }
@Configuration public class BackupConfig { //正常交换机 public static final String /confirm/i_EXCHANGE_A = "/confirm/i.exchange.a"; //备份交换机 public static final String BACKUP_EXCHANGE = "backup.exchange"; //正常队列 public static final String /confirm/i_QUEUE_A = "/confirm/i.queue.a"; //备份交换机连接队列1 继续尝试连接队列 public static final String BACKUP_QUEUE_INFO = "backup.queue.info"; //备份交换机连接队列2 发送警告信息 public static final String BACKUP_QUEUE_WARNING = "backup.queue.warn"; //正常的routing_key public static final String ROUTING_KEY_A = "routing.key.a"; //声明交换机 @Bean("exchangeA") public DirectExchange exchangeA() { Map(二)、消息消费者arguments = new HashMap<>(); arguments.put("alternate", BACKUP_EXCHANGE); return new DirectExchange(/confirm/i_EXCHANGE_A, true, false, arguments); } @Bean("backupExchange") public FanoutExchange backupExchange() { return new FanoutExchange(BACKUP_EXCHANGE, true, false, null); } //声明队列 @Bean("/confirm/iQueueA") public Queue confirmQueueA() { return QueueBuilder.durable(/confirm/i_QUEUE_A).build(); } @Bean("backupQueueInfo") public Queue backupQueueInfo() { return QueueBuilder.durable(BACKUP_QUEUE_INFO).build(); } @Bean("backupQueueWarning") public Queue backupQueueWarning() { return QueueBuilder.durable(BACKUP_QUEUE_WARNING).build(); } //绑定 @Bean public Binding exchangeABindingConfirmQueueA(@Qualifier("/confirm/iQueueA") Queue /confirm/iQueueA, @Qualifier("exchangeA") DirectExchange exchangeA) { return BindingBuilder.bind(/confirm/iQueueA).to(exchangeA).with(ROUTING_KEY_A); } @Bean public Binding backupExchangeBindingBackupQueueInfo(@Qualifier("backupQueueInfo") Queue backupQueueInfo, @Qualifier("backupExchange") FanoutExchange backupExchange) { return BindingBuilder.bind(backupQueueInfo).to(backupExchange); } @Bean public Binding backupExchangeBindingBackupQueueWarning(@Qualifier("backupQueueWarning") Queue backupQueueWarning, @Qualifier("backupExchange") FanoutExchange backupExchange) { return BindingBuilder.bind(backupQueueWarning).to(backupExchange); } }
@Slf4j @Component public class WarningConsumer { @RabbitListener(queues = BackupConfig.BACKUP_QUEUE_WARNING) public void warningMessage(Message message) { String msg = new String(message.getBody()); log.info("报警队列收到了信息:{}", msg); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)