1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| public class Receiver4DLXtExchange {
public static void main(String[] args) throws Exception { ConnectionFactory connectionFactory = new ConnectionFactory() ; connectionFactory.setHost("192.168.11.71"); connectionFactory.setPort(5672); connectionFactory.setVirtualHost("/"); connectionFactory.setAutomaticRecoveryEnabled(true); connectionFactory.setNetworkRecoveryInterval(3000); Connection connection = connectionFactory.newConnection(); Channel channel = connection.createChannel(); String queueName = "test_dlx_queue"; String exchangeName = "test_dlx_exchange"; String exchangeType = "topic"; String routingKey = "group.*"; channel.exchangeDeclare(exchangeName, exchangeType, true, false, false, null); Map<String, Object> arguments = new HashMap<String, Object>(); arguments.put("x-dead-letter-exchange", "dlx.exchange"); channel.queueDeclare(queueName, false, false, false, arguments); channel.queueBind(queueName, exchangeName, routingKey); channel.exchangeDeclare("dlx.exchange", exchangeType, true, false, false, null); channel.queueDeclare("dlx.queue", false, false, false, null); channel.queueBind("dlx.queue", "dlx.exchange", "#"); QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume(queueName, true, consumer); while(true){ Delivery delivery = consumer.nextDelivery(); String msg = new String(delivery.getBody()); System.out.println("收到消息:" + msg); } } }
|