//设置账号信息,用户名、密码、vhost
        factory.setVirtualHost("/");
        factory.setUsername("guest");
        factory.setPassword("guest");
        //通过工厂拿到连接
        connection = factory.newConnection();
#### 2.创建信道
/**
 *
 * @param channelNumber 要分配的通道编号
 * @return 返回一个信道对象,如果编号存在则返回null
 * @throws IOException if an I/O problem is encountered
 */
Channel createChannel(int channelNumber) throws IOException;
#### 3.创建交换机
/**
 * 声明一个交换机。
 *
 * @param exchange 交换机名称
 * @param type 交换机类型(DIRECT, FANOUT, TOPIC, HEADERS;)
 * @param durable 是否开启持久化
 * @param autoDelete 在不被使用时是否自动删除
 * @param internal 是否能由客户端直接发布到该交换机
 * @param arguments 交换机其他构造参数
 * @return 返回一个声明成功的方法表明交换机被成功创建
 * 
 */
Exchange.DeclareOk exchangeDeclare(String exchange,
    BuiltinExchangeType type,
    boolean durable,
    boolean autoDelete,
    boolean internal,
    Map<String, Object> arguments) throws IOException;
交换机参数:



> 
>         1.exchange:交换机名称  
>          2.type:交换机类型(DIRECT, FANOUT, TOPIC, HEADERS)  
>          3.durable:是否开启持久化,开启后交换机会在服务重启后重新加载  
>          4.autoDelete:在不被使用时是否自动删除  
>          5.internal:是否能由客户端直接发布到该交换机,如果为True的话表示当前Exchange是RabbitMQ内部使用,我们创建的Queue不会消费该类型交换机下的消息  
>          6.arguments:交换机其他构造参数
> 
> 
>                 alternate-exchange:备用交换机名称(当前交换机不可用时发送至备用交换机)
> 
> 
> 


#### 4.创建队列
/**
 * 声明队列
 * 
 * @param queue 队列名称
 * @param durable 是否开启持久化
 * @param exclusive 是否为独占队列
 * @param autoDelete 在不被使用时是否自动删除
 * @param arguments 队列其他构造参数
 * @return 返回一个声明成功的方法表明队列被成功创建
 * 
 */
Queue.DeclareOk queueDeclare(String queue, 
    boolean durable, 
    boolean exclusive, 
    boolean autoDelete,
    Map<String, Object> arguments) throws IOException;
队列参数



> 
>         1.queue 队列名称  
>          2.durable 是否开启持久化,开启后队列会在服务重启后重新加载  
>          3.exclusive 是否为独占队列,就是说声明为独占队列时,该队列只对当前连接connection可见,其他连接不可见,且在当前连接断开时会删除当前队列,注意这里断开会删除指的是connection断开不是channle断开  
>          4.autoDelete 在不被使用时是否自动删除,指在所有消费者都断开后删除该队列并丢弃队列中的消息  
>          5.arguments 队列其他构造参数
> 
> 
> ![]()
> 
> 
>         x-expires:在自动删除队列之前,队列存活时间(单位毫秒)。
> 
> 
>         x-message-ttl:在队列中的消息被丢弃之前存活多长时间(单位毫秒)。
> 
> 
>         x-overflow:设置队列溢出行为。当达到队列的最大长度时消息会发生什么。有效值为drop-head、reject-publish或reject-publish-dlx。仲裁队列类型仅支持drop-head和reject-publish。