King's Studio

RabbitMQ的简介以及原理

字数统计: 404阅读时长: 1 min
2020/05/22 Share

Rabbit简介

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现,是现在市面上应用比较广泛的消息队列中间件。它包含通用的两种消息转发模式,一是点对点,二是广播。

AMQP中的消息路由

AMQP中的消息的路由过程和JMS有一些差别,AMQP中增加了Exchange和Binding的角色。具体流程如下,首先生产者(Producer)将消息发布到交换器(Exchange)上,由交换器(Exchange)根据路由规则决定将消息派发到哪一个消息队列(Queue)中,最后由消费者(Consumer)从队列(Queue)中获取所需要的消息。

原理

Exchange的四种类型

Exchange分发消息时根据类型的不同,分发策略有区别,目前共有四种类型:direct、fanout、topic、headers。headers类型的交换器和direct完全一致,但性能差很多,目前几乎用不到。

Direct Exchange

这是一种完全匹配、单播的模式,Exchange根据消息携带的routing key与队列进行匹配,只有完全匹配上的才会对该队列发送消息,因此这是一种单播的模式。

单播

Fanout Exchange

这种模式的交换器会对所有队列进行消息广播,即每个队列都能获得Exchange发送过来的消息,因此fanout类型的Exchange转发消息是最快的。

广播

Topic Exchange

topic交换器通过模式匹配进行分配消息,只要符合匹配的规则,该消息就会去往相对应的一个或者多个队列。符号”#”匹配0个或者多个单词,符号”*”匹配一个单词。

主题

原文作者:金奇

原文链接:https://www.rossontheway.com/2020/05/22/RabbitMQ的简介以及原理/

发表日期:May 22nd 2020, 12:00:00 am

更新日期:May 22nd 2020, 3:31:13 pm

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,除特别声明外,转载请注明出处!

CATALOG
  1. 1. Rabbit简介
  2. 2. AMQP中的消息路由
  3. 3. Exchange的四种类型
    1. 3.1. Direct Exchange
    2. 3.2. Fanout Exchange
    3. 3.3. Topic Exchange