RabbitMQ的核心概念为以下:
1.消息:由消息头和消息体组成。消息体是不透明的,消息头是由一系列可选属性组成,包括路由键、优先权、是否持久化等
2.交换器:用来接收生产者发送的消息,并将消息路由给服务器中的队列,有四种类型:direct(默认)、fanout、topic、headers
direct:路由键与交换器绑定的消息队列名完全匹配
fanout:不处理路由键,该交换器会把消息转发到所有与该交换器绑定的所有队列(速度最快)
topic:匹配分配消息,二个通配符,#匹配0个或者多个单词,*匹配一个单词
3.绑定:用于消息队列和交换器之间的关联,一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则
4.消息队列:用来保存消息直到发送给消费者
5.网络连接:比如一个TCP连接
6.信道:是建立在真实的TCP连接内的虚拟连接,因为建立和销毁TCP是非常昂贵的开销,所以引入信道,已服用一条TCP连接
总结:消息生产者将消息发送给消息代理,消息代理的交换器,结合消息的路由键产生的绑定规则,发送到对应消息队列,等待消费者读取消息