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:消费者
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义