rabbitmq进阶

声明备份交换机
        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

  1. 信息被拒绝
  2. 信息过时
  3. 队列达到最大长度

     建立死信队列
        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

相关文章
相关标签/搜索