前言
RabbitMQ是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP)标准,提供可靠的消息传递机制。RabbitMQ可以用于在应用程序之间传递消息,实现不同应用系统之间的解耦和通信。它支持多种编程语言,并提供了丰富的功能和插件,使得开发者能够更轻松地构建分布式系统。RabbitMQ支持多种开放标准协议,包括AMQP 1.0和MQTT 5。
本节内容是对rabbitmq核心组件及其工作原理的介绍,方便我们更加清楚的使用rabbitmq作为消息中间键实现我们具体的业务场景。
正文
使用docker安装一个rabbitmq消息中间键
# latest RabbitMQ 3.13
docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13-management
rabbitmq的核心组件
①Broker(服务器)
- rabbitmq的服务器,用于存储消息的服务器。
②Exchange(交换机)
- 用于接收来自生产者的消息,并将这些消息路由到一个或多个与之绑定的队列。
③Queue(队列)
- 用于存储消息的组件,为防止消息丢失,可持久化存储。
④Binding(绑定关系)
- 定义了 Exchange 和 Queue 之间的关系,它指定了消息应该如何从 Exchange 路由到相应的队列。
⑤Connection(通信连接)
- 客户端和RabbitMQ之间的TCP连接,用于消息的发送(生产者)或者消息的接收(发布者)。
⑥Channel(信道)
- 在连接中创建的虚拟连接,用于执行大部分的 AMQP操作。
⑦Virtual host
- 一个逻辑概念,它让 RabbitMQ可以在一台物理机上支持多个独立的消息代理实例。
rabbitmq的工作原理
发布消息:生产者producer通过Connection连接与broker服务器建立一个Channel信道,将消息发送给交换机Exchange,交换机通过路由键router-key将不同主题的消息通过路由键转发给消息队列Queue,消息被存储在Queue队列中,默认是内存存储,服务器重启消息会丢失,生产使用一般会开启持久化存储。
消费消息:消费者consumer通过Connection连接与broker服务器建立一个Channel信道,主动拉取或者通过服务器推送来消费消息。
结语
至此,关于rabbitmq的核心组件及其工作原理的内容到这里就结束了,我们下期见。。。。。。