RabbitMQ基本概念
1:基本概念
连接:客户端和rabbitmq进行连接
信道:使用TCP和rabbitmq进行连接的。连接的时候创建一个信道,保证每个线程的私密性。信道是可以重复多用的。
生产者:就是生产消息,把消息放入到mq中
消费者:mq把消息发送到指定的消费的地方
消息:有效的数据。也可能是标签
交换器:收到消息,根据不同路由键,放入到不同的队列当中
队列:就消息投递给相对应的消费者
绑定:就是将交换器和队列进行绑定
路由键:生产者生产消息的时候,会带上路由键,发送给交换机。
2:消息的确认
消费者必须进行消息的确认(自动确认或手动确认)
当没有消费者的时候,消息会一直存在rabbitmq中。
当发送消息的时候,如果mq中没有路由键,消息则会直接丢弃。
消息一般都是通过轮训的方式发送给消费者的。
3:虚拟主机
就是除了消费者和生产者,将其他的放到一起组成一个虚拟主机,虚拟主机可以有多个,也可以设置权限。生产者将消息发送给虚拟主机,虚拟主机在将消息发送给消费者。
4:交换器
direct:完全匹配。只有完全匹配的队列才能进入。
fanout:全部发送。不管发送者和路由键是否匹配,进入全部的队列当中。
topic:路由键中的*和#,A.# 像A.a、A.b都能匹配成功。#匹配多个,*只匹配一个(.分隔多个),路由键使用.分隔的,进入相对应的队列。
header(direct):是根据headers和交换器进行匹配;数据可以是任何的数据类型;匹配规则x-match = all(全部匹配) any(主要有匹配就行)