声明备份交换机
Map<String, Object> map = new HashMap<String, Object>();
map.put("alternate-exchange" , "myAe");//备份交换机名称为myAe
channel.exchangeDeclare( "normalExchange" , "direct" , true , false , map);//声明一个direct交换机
channel.exchangeDeclare( "myAe" , "fanout" , true, false , null) ;//声明一个fanout备份交换机
channel.basicPublish("normalExchange", "errorkey", null, message.getBytes());
发送信息到normalExchange交换机当路由键错误时会将信息发送单myAe交换机上ui
设置信息的TTL
队列设置TTL
map.put("x-message-ttl", 6000);//设置信息过时时间6秒过时
channel.queueDeclare( "normalQueue" , true , false , false , map);//建立一个norma1Queue队列
交换机设置每条信息超时时间
AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties.Builder();
builder.deliveryMode(2);
builder.expiration("11000");
AMQP.BasicProperties properties = builder.build();
channel.basicPublish("normalExchange", "normalKey", properties, message.getBytes());spa
死信队列.net
建立死信队列
channel.exchangeDeclare("exchange.dlx", "direct", true);//建立一个持久化名为exchange.dlx类型direct的交换机
channel.exchangeDeclare("exchange.normal", "fanout", true);
channel. basicPublish( "exchange.normal", "rk",MessageProperties.PERSISTENT_TEXT_PLAIN, "dlx".getBytes()) ; orm
Map<String, Object> map = new HashMap<String, Object>();
map.put("x-message-ttl", 10000);//设置信息超时l0000秒
map.put("x-dead-letter-exchange" , "exchange.dlx");//设置死信信息到exchange.dlx交换机
map.put("x-dead-letter-routing-key", "routingkey");//死信队列的key
channel.queueDeclare("queue.normal" , true , false , false , map);
channel.queueBind("queue.normal", "exchange.normal", "");
channel.queueDeclare("queue.dlx", true , false , false , null) ;
channel.queueBind( "queue.dlx" ,"exchange.dlx","routingkey");//queue.dlx为死信队列
(TTL队列结合死信队列能够看作一个延迟队列)blog
队列优先级队列
设置队列优先
Map<String, Object> map =new HashMap<String, Object>() ;
map.put( "x-rnax-priority " , 10) ;
channel.queueDeclare( "queue.priority" , true, false , false , map) ;
设置信息优先级
AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties.Builder() ;
builder.priority(5) ;
AMQP.BasicProperties properties = builder.build () ;
channel.basicPub1ish( "exchange_priority" ,"rk_priority",properties , ("messages").getBytes()) ;
默认优先级最低为0路由
RPC实例
https://blog.csdn.net/leisure_life/article/details/78657935get