package com.zy.acs.hex.consumer; import com.zy.acs.hex.config.RabbitMQConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.support.AmqpHeaders; import org.springframework.boot.autoconfigure.amqp.RabbitProperties; import org.springframework.messaging.handler.annotation.Header; import org.springframework.stereotype.Component; import java.io.IOException; /** * 消费者 */ @Slf4j @Component public class MessageListener { public static final String durable = "true"; @RabbitListener(bindings = @QueueBinding( value = @Queue(name = RabbitMQConfig.TOPIC_QUEUE_UP, durable = durable), exchange = @Exchange(name = RabbitMQConfig.TOPIC_EXCHANGE), key = RabbitMQConfig.ROUTING_KEY_UP )) public void receiveFromUpData(Message message, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag, RabbitProperties.Cache.Channel channel) throws IOException { log.info("receive message: {}" + "msgId:" + message.getMessageProperties().getMessageId()); // 进入消息消费业务逻辑。 System.out.println("收到消息:" + new String(message.getBody())); } @RabbitListener(bindings = @QueueBinding( value = @Queue(name = RabbitMQConfig.TOPIC_QUEUE_DOWN, durable = durable), exchange = @Exchange(name = RabbitMQConfig.TOPIC_EXCHANGE), key = RabbitMQConfig.ROUTING_KEY_DOWN )) public void receiveFromDownData(Message message, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag, RabbitProperties.Cache.Channel channel) throws IOException { log.info("receive message: {}" + "msgId:" + message.getMessageProperties().getMessageId()); // 进入消息消费业务逻辑。 System.out.println("收到消息:" + new String(message.getBody())); } }