说到 RabbitMQ,就不能不提 AMQP 协定,因为 RabbitMQ 就是基于 AMQP 协定来实现的,咱们先来看看 AMQP 协定到底是什么
AMQP 协定
AMQP,即 Advanced Message Queuing Protocol,一个提供对立音讯服务的应用层规范高级音讯队列协定,是应用层协定的一个凋谢规范,为面向音讯的中间件设计。基于此协定的客户端与消息中间件可传递音讯,并不受客户端 / 中间件不同产品,不同的开发语言等条件的限度。更多的对于 AMQP 的信息,大家能够去百度百科查看
RabbitMQ 次要组件
1. 生产者 (Producer):音讯生产者,生产音讯投递到交换机中的客户端
2. 消费者 (Consumer):音讯消费者,从队列中获取音讯生产的客户端
3. 音讯 (Message):蕴含有效载荷和标签,有效载荷指要传输的数据,标签形容了有效载荷,并且 rabbitmq 用它来决定谁取得音讯
4. 信道 (Channel):多路复用连贯中的一条独立的双向数据流通道
5. 交换器 (Exchange):服务器中的实体,用来接管生产者发送的音讯并将这些音讯路由给服务器中的队列
6. 队列 (Queue):一个命名实体,用来保留音讯直到发送给消费者
7. 路由键 (Routing Key):一个音讯头,交换器能够用这个音讯头决定如何路由某条音讯
8. 虚拟主机 (Virtual Host):一批交换器、音讯队列和相干对象。虚拟主机是共享雷同的身份认证和加密环境的独立服务器域。客户端应用程序在登录到服务器之后,能够抉择一个虚拟主机
RabbitMQ 简略架构模型
队列通过路由键绑定到交换器,当生产者生产音讯后,将音讯投递到交换器中,交换器依据绑定的路由键,将音讯路由到对应的队列,而后由订阅该队列的消费者接管音讯并生产
对于 RabbitMQ 的装置,网上资源很多,这里就不再多说。RabbitMQ 的依赖较多,能够应用 Dokcer 去装置