RabbitMQ的工作原理
在RabbitMQ中生产者与MQ之间存在连接,一个连接中可以用很多信道,连接Broker,这里可以理解为实体服务器,每个Broker中又有很多虚拟主机,每个虚拟主机中存在很多交换机,交换机可以和队列进行绑定进行消息分发,消费者通过消费队列中的消息进行信息处理。如下图所示
而消息分发又存在以下几种方式
rabbitmq exchange有四种类型:fanout、direct、topic、headers。
fanout 类型
fanout 类型:类似于广播,群发。接收到的消息,会分发给所有绑定的队列。
direct 类型
direct类型:交换机通过路由键(RoutingKey)传递消息。
topic 类型
topic 类型:通过模糊查询进行匹配,其中.作为分隔符,*为单个单词通配,#为多个单词通配。
header 类型
headers 类型:消息生产者发送消息时,指定headers(键对值形式),队列和 Exchange 绑定时指定headers的匹配形式。
AMQP协议
AMQP(Advanced Message Queuing Protocol)高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。