美文网首页
RabbitMQ系列十三 RabbitClient 另外说明

RabbitMQ系列十三 RabbitClient 另外说明

作者: 时之令 | 来源:发表于2018-11-21 23:41 被阅读0次
    不同的方式获取连接
    package com.edu.mq.rabbitmq;
    
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    import com.rabbitmq.client.DefaultConsumer;
    
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.TimeUnit;
    
    /**
     * 类说明:
     *
     * @author zhangkewei
     * @date 2018/11/21下午11:12
     */
    public class RabbitClientOther {
    
    
        public static void main( String[] args ) throws Exception {
            ConnectionFactory factory = new ConnectionFactory();
    //方式一 逐一设置host,port,virtualhost,
    //username,password,
    //      factory.setHost("192.168.120.131");
    //      factory.setPort(5672);
    //      factory.setUsername("guest");
    //      factory.setPassword("guest");
    //      factory.setVirtualHost("/");
    
    //半成品:一次设置好host和端口
    //      factory.setUri("amqp://192.168.120.131:5672");
            //一次性设置好host,端口,用户名,密码  factory.setUri("amqp://guest:guest@192.168.120.131:5672");
    
    //   一次性设置好host,端口,用户名,密码和virtualhost   factory.setUri("amqp://guest:guest@192.168.120.131:5672/vlog");
            factory.setUri("amqp://guest:guest@localhost:5672");
    //      factory.setUri("amqps://192.168.120.131:5672");
    
            /**
             * 可以自定义连接相关属性
             */
            Map<String,Object> clientProperties = new HashMap<>();
            clientProperties.put("author","zhangkewei");
            clientProperties.put("time",new Date());
            factory.setClientProperties(clientProperties);
            /**
             * 自定义连接的名称
             */
            Connection conn = factory.newConnection("自定义连接名称");
            Connection conn2 = factory.newConnection("自定义连接名称2");
            /**
             * 自定义channel的序列号,默认一个系统里面的所有的channel的序列是自增的
             */
            Channel channel = conn.createChannel(10);
            Channel channel1 = conn.createChannel(20);
    
            /**
             * String basicConsume(String queue, boolean autoAck, String consumerTag, Consumer callback)
             * 这里的consumerTag可以标志是那个消费者
             */
            channel.basicConsume("debug_queue",true,"测试自定义消费者名称",new DefaultConsumer(channel));
    
            TimeUnit.SECONDS.sleep(120);
    
            channel.close();
            conn.close();
        }
    }
    
    
    
    自定义连接名称,这样可以在connections中找到自己的连接,同样也可以一目了然的知道当前的连接用来做什么的。
    image.png
    定义连接的属性,这里可以作展示
    image.png

    自定义channel的序列

    自定义channel的序列号,默认一个系统里面的所有的channel的序列是自增的


    image.png
    自定义消费者

    重载方法,String basicConsume(String queue, boolean autoAck, String consumerTag, Consumer callback)
    这里的consumerTag可以标志是那个消费者


    image.png

    说明:以上的这些功能,可以有也可以没有,不影响mq的使用,但是有这些,更人性话,更可读,遇到问题,更好的跟踪问题。

    相关文章

      网友评论

          本文标题:RabbitMQ系列十三 RabbitClient 另外说明

          本文链接:https://www.haomeiwen.com/subject/ovahqqtx.html