RabbitMQ运行机制

Posted fanqisoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ运行机制相关的知识,希望对你有一定的参考价值。

    AMQP中消息的路由过程和Java开发者熟悉的JMS存在一些差别,AMQP中增加了Exchange和Binding的角色,生产者把消息发布到Exchange上,Binding决定发布到Exchange上的消息应该发送到那个队列上,消息最终到达队列并被消费者接收。

Exchange(交换器)类型

  Exchange分发消息时根据类型的不同分发策略也不相同,目前共有4种类型:direct(默认,点对点)、fanout、topic、headers,headers匹配消息的header而不是routing-key(路由键),除此之外,headers交换器和direct交换器完全一致,但性能差好多,目前几乎已经不用了,因此不再说明此类型。

  1.Direct Exchange(默认,点对点)

  消息中的routing-key(路由键)如果和Binding中的binding-key一致,交换器就将该消息发到对应的队列中。如果一个队列绑定到交换器要求路由键为“dog”,则只转发routing-key标记为dog的消息,它是完全匹配、单播的模式。

  2.Fanout Exchange

  每个发到fanout类型交换器的消息都会分到所有绑定的队列上去,fanout交换器不处理路由键,只是简单的将队列绑定到交换器上,每个发送到交换器的消息都会被转发到与该交换器绑定的所有队列上,很像子网广播,每台子网内的主机都获得了一份复制的消息,fanout类型转发消息是最快的。

  3.Topic Exchange(通配符匹配)

  binding-key支持通配符,有两个通配符,“#”代表0个或多个单词,“*”代表一个单词,若消息的routing-key与之匹配,则将消息发至该队列。

  

  

  

以上是关于RabbitMQ运行机制的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ确认机制问题处理

Flink 与rabbitmq集成 并开启checkpoint

rabbitmq:消息远程复制(Shovel 插件)

RabbitMQ : 消息确认机制之 confirm 机制

RabbitMQ : 消息确认机制之事务机制

RabbitMQ 消息可靠性的机制