这里先演示最简单的模型:直连模式。其结构图为:

一个生产者 -> 消息队列 -> 一个消费者
生产者只需要将数据丢进消息队列,而消费者只需要将数据从消息队列中取出,这样就实现了生产者和消费者的消息交互。
-  创建一个新的实验环境,即新建一个Virtual Host。  
-  添加新的虚拟主机之后,我们可以看到,当前admin用户的主机访问权限中新增了刚刚添加的环境。  
-  查看交换机。  交换机列表中自动新增了刚刚创建好的虚拟主机相关的预设交换机,一共7个。 这里首先介绍一下前面两个 direct类型的交换机,一个是(AMQP default)还有一个是amq.direct,它们都是直连模式的交换机。-  单击 (AMQP default)进入详情。 -  (AMQP default)是所有虚拟主机都会自带的一个默认交换机。
-  此交换机默认绑定到所有的消息队列。 如果是通过默认交换机发送消息,会根据消息的 routingKey(发消息时指定)决定发送给哪个同名的消息队列,同时也不能显式地将消息队列绑定或解绑到此交换机。
-  此交换机不可删除。 
 可以看到,详细信息中,特征(Features)项为: durable:true,表明当前交换机特性是持久化的,也就是说就算机器重启,此交换机也会保留;如果不是持久化,那么一旦重启就会消失。在列表中看到 D的字样,就表示此交换机是持久化的。所有自动生成的交换机都是持久化的。 
-  
-  单击 amq.direct进入详情。 这个交换机和默认交换机类型一致,并且也是持久化的。 但是可以看到它是具有绑定关系的,如果没有指定的消息队列绑定到此交换机上,那么这个交换机无法正常将信息存放到指定的消息队列中,也是根据 routingKey寻找消息队列(可以自定义)。
 
-  
-  查看消息队列。目前没有消息队列,所以需要创建一个。  - Virtual host:虚拟主机。这里选择自建的,在这个虚拟主机下创建此消息队列。
- Type:类型。选择Classic,也就是经典类型。
- Name:名称。可以随便取,这里取test。
- Durability:持久化。这里选择Durable,即持久的。
- Auto delete:自动删除。这里选择No,如果选Yes,即代表需要至少有一个消费者连接到这个队列,一旦所有与这个队列连接的消费者都断开时,就会自动删除此队列。
- Arguments:参数。暂时不用设置。
 
-  点击创建的消息队列名称,可查看详情。  详细信息中包括队列的当前负载状态、属性、消息队列占用的内存,消息数量等。 从绑定信息可以发现,该队列默认绑定了交换机,就是前面介绍的 (AMQP default)默认交换机。现在需要将此消息队列绑定到 amq.direct,这样就可以通过此交换机向此消息队列发送消息了: 
-  回到交换机。这里也显示了与队列的绑定关系。 向该消息队列中发送一条消息:  
-  回到队列。 可以看到已经有一条消息了:  
-  获取消息。 选择Get messages,可以获取消息:  -  Ack Mode:接收消息的模式。有4种,分别为: - Nack message requeue true:获取到消息的内容;不会去消费消息。
- Automatic ack:获取到消息的内容;会去消费消息。
- Reject requeue true:拒绝获取消息;消息重新入队。
- Reject requeue false:拒绝获取消息;消息不重新入队,将会被删除。
 这里使用默认的即第1种就可以了,这样只会查看消息,但是不会取出,消息依然存在于消息队列中。 
-  Encoding:编码格式。使用默认的就可以。 
-  Messages:要生效的操作数量。选择1就行。 
  消息已经成功读取到。 
-  
-  除了在交换机发送消息给消息队列之外,也可以直接在消息队列这里发。  - Delivery mode:推送方式。 
    - Non-persistent:不持久化。如果服务器重启,此消息删除。
- Persistent:持久化。如果服务器重启,此消息依然存在。
 
- Headers:头部信息。
- Properties:属性。
- Payload:载荷的消息。
 
- Delivery mode:推送方式。 
    
-  如果不需要再使用此消息队列了,可以手动对其进行删除或是清空。  
- 环境 
  - Ubuntu 22.04
- RabbitMQ 3.11.10
- Erlang 25.3
 






![Linux学习[8]文件权限深入2 默认权限umask SUID/SGID/SBIT file指令](https://img-blog.csdnimg.cn/66aba701252e48298be2171c0fec7c59.png)












