生产者和消费者
1.生产者:创建消息,发布消息到代理服务器(RabbitMQ)
(1)消息:有效荷载和标签
(2)有效荷载:消息的内容
(3)标签:用来描述消息(交换器的名称或者可选主题的标记),然后把消息交由RabbitMQ,由RabbitMQ进行后续处理
2.消费者:连接到代理服务器(RabbitMQ),并订阅到队列(queue)上,接收代理服务器发布的消息并读取
(1)接收到的消息只包括有效荷载,即消息内容
应用程序和RabbitMQ代理之间的连接
1.基本原理:首先创建一条TCP连接,TCP连接打开后(即通过认证),应用程序创建一条AMQP信道。
2.信道:是建立在真实的TCP连接内的虚拟连接,AMQP命令是通过信道发送出去
3.应用程序和RabbitMQ代理之间的连接用信道而不直接用TCP连接的原因
(1)一个信道处理一个线程,一个TCP连接可以承载多个信道,即多个线程可以使用同一个TCP连接,减少资源消耗,避免性能瓶颈
(2)一个TCP的创建和销毁对资源的消耗会很大,创建需要三次握手,销毁需要四次挥手。
4.TCP协议的三次握手和四次分手
(1)建立连接的三次握手:
-第一次握手:客户端发送给服务端,请求连接
-第二次握手:服务端接收到客户端发送的请求连接的消息,回复给客户端请求连接
-第三次握手:上述两次握手本质上已经建立连接,但是此时客户端还会发送给服务端一个消息,确认连接,即表示连接成功
(2)销毁连接的四次挥手:
-第一次挥手:客户端发送给服务端,断开连接
-第二次挥手:服务端接收到请求断开连接的请求,发送确认消息
-第三次挥手:服务端发送给客户端,断开连接
-第四次挥手:客户端接收到服务端的消息,确认断开连接
注意:销毁连接需要四次挥手是因为TCP连接是双向连接,断开也需要双向断开和确认
网友评论