Rabbitmq 对象

一、为什么使用消息队列?

应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步、定时任务

官网:https://www.rabbitmq.com/getstarted.html

二、Rabbitmq的对象:

 

 

Server:又称Broker,接收客户端的连接,实现AMQP实体服务;

Conncetion:RabbitMQ的socket连接,它封装了socket协议相关部分逻辑;

ConncetionFactory:Connection的制造工厂;

Channel:网络通道,几乎所有操作都在Channel中进行,是进行读写的通道,客户端可建立多个Channel,每个Channel代表一个会话任务;

为什么要建立多个Channel?
因为一些应用程序需要多个连接到服务器,如果每次连接都要建立TCP连接,那样不但浪费资源,而且使得防火墙的配置变得十分困难。AMQP使用通道来实现多路传输,通道可以被认为是共享一个TCP连接的轻量级连接;
客户端进行的每个协议操作都发送在一个通道上,每个通道的通信都是相互隔离,因此每个协议方法都携带一个通道ID,它是一个整数,被服务器和客户端用来区分方法该用于哪个通道;当一个连接被关闭时,它所属的所有通道都会被关闭;
PS:Queue与Exchange的声明和绑定,都是在Channels中进行的;

Message:消息,服务器与应用程序之间传递的数据,由Properties和Body组成, Properties可以对消息进行修饰,如消息的优先级、传输格式(如JSON)、延迟等高级特性,Body则就是消息体内容;Message的详解

Virtual Host:虚拟地址,用于进行逻辑隔离,最上层的消息路由,一个 Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange或Queue;Virtual Host作用及角色权限

Exchange:交换机,接收消息,根据路由键转发消息到绑定的队列;

Queue:也称为Message Queue队列,保存消息并将它们转发给消费者;

Routing Key:路由规则,虚拟机可以用来确认路由到哪个队列;

Bingding:Exchange和Queue之间的虚拟连接;

Producer:生产者;

Consumer:消费者

 

posted @ 2023-03-06 10:12  SasaL  Views(20)  Comments(0Edit  收藏  举报