1 RabbitMQ知识点 1.1 整体架构图
消息生产者将消息投递到exchange中,exchange会以某种路由机制将生产者投递的消息路由到queue中,消息消费者再从queue中获取消息进行消费。
1.2 核心概念 1.2.1 server
又称Broker,接收客户端的连接,实现AMQP实体服务
1.2.2 Connection连接,应用服务与Broker的网络连接(PS:和JDBC中的connection作用相似)
1.2.3 Channel网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可建立多个Channel,每个Channel代表一个会话。【PS:相当于JDBC的Statement】
1.2.4 Message消息,服务器和应用程序之间传递的数据,由Properties和Body组成;Properties可以对消息进行修饰,比如消息的优先级、迟延等高级特性;Body则就是消息的内容。
1.2.5 Virtual Host虚拟地址,用于进行逻辑隔离的最上层的消息路由。一个Virtual Host 里面可以有若干个Exchange 和 Queue,同一个Virtual Host里面不能有相同名称的Exchange或Queue;默认是 / , Virtual Host 通常用来进行项目划分,即:一个项目相关的exchange 和 queue 都在一个Virtual Host中。
1.2.6 Exchange交换机,用于接收消息;根据路由键转发消息到绑定的队列
1.2.7 BindingExchange 和 Queue 之间的虚拟连接,Binding 可以包含routing key。
1.2.8 Routing Key一个路由规则,虚拟机可以用它来确定如何路由一个特定消息;就是exchange和queue的路由规则
1.2.9 Queue也称Message Queue,消息队列,保存消息并将他们转发给消费者
1.3 RabbitMQ消息的流转消息发布者会发送一个消息、exchange、routeing Key 到rabbtiMQ,他们先经过 Virtual Host , 再经过 Exchange, 再到Queue;消息消费者再到Queue中获取消息
2 Docker下载RabbiMQ 2.1 Docker环境搭建
请参见另外一篇博文:点击前往
docker版本为:
2.2 安装RabbitMQ 2.2.1 拉取RabbitMQ镜像docker pull rabbitmq:3.7.7-management